Java float或double保留两位小数
程序员文章站
2022-03-01 13:51:26
...
不管是Java Web项目还是Android项目、很多时候都需要使用到保留两位小数问题、经过查找、本文将给出几种方案、大家可根据项目需要自己决定使用那种方法
方案一、四舍五入
double f = 111231.5585; BigDecimal b = new BigDecimal(f); double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); //保留两位小数
方案二、DecimalFormat
1、用DecimalFormat 返回的是String格式的、该类对十进制进行全面的封装、像%号、千分位、小数精度、科学计算等
float price=1.2; //构造方法的字符格式这里如果小数不足2位,会以0补足 DecimalFormat decimalFormat = new DecimalFormat(".00"); //format 返回的是字符串 String p = decimalFomat.format(price);
例:new DecimalFormat("#.00").format(3.1415926)
#.00 表示两位小数 #.0000四位小数 以此类推...
方案三、String.format
double d = 3.1415926; String result = String.format("%.2f");
%.表示小数点前任意位数、2表示两位小数、格式后的结果为f、表示浮点型
方案四、NumberFormat
NumberFormat ddf1 = NumberFormat.getNumberInstance() ; void setMaximumFractionDigits(int digits)
digits 显示的数字位数、为格式化对象设定小数点后的显示的最多位、显示的最后位是舍入的
事例代码
double x=23.5455; NumberFormat ddf1=NumberFormat.getNumberInstance() ; ddf1.setMaximumFractionDigits(2); String s= ddf1.format(x);
方案五、Math.round
用Math.round计算,这里返回的数字格式的
float price = 89.89; int itemNum = 3; float totalPrice = price * itemNum; //如果要求精确4位就*10000然后/10000 float num = (float)(Math.round(totalPrice*1000))/1000;
以上就是Java保留两位小数的5种方案、希望对大家有用
推荐阅读
-
JS:如何控制金额的输入,处理为允许的格式?(保留一位或两位小数)
-
java保留两位小数和js保留两位小数一致性研究
-
Java Float 保留小数位精度的实现
-
java保留小数点后两位怎么设置(java数组自带的排序)
-
Java保留两位小数的几种做法
-
Java保留两位小数的几种做法
-
Double转BigDecimal并保留两位小数出现异常: java.lang.ArithmeticException: Rounding necessary
-
C++/ double float保留小数 只对部分小数进行四舍五入
-
Java Double 输出结果保留几位小数 使用printf
-
Java中如何将double类型的值保留小数点后两位或者多位 javaDouble