java中如何实现将float精确到小数点后两位

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中如何实现将float精确到小数点后两位相关的知识,希望对你有一定的参考价值。

比如 float f = 0.123456

怎么弄成0.12(四舍五入)

参考技术A 方法1:用Math.round计算,这里返回的数字格式的.

float price=89.89;
int itemNum=3;
float totalPrice=price*itemNum;
float num=(float)(Math.round(totalPrice*100)/100);//如果要求精确4位就*10000然后/10000

方法2:用DecimalFormat 返回的是String格式的.该类对十进制进行全面的封装.像%号,千分位,小数精度.科学计算.

float price=1.2;
DecimalFormat decimalFormat=new DecimalFormat(".00");//构造方法的字符格式这里如果小数不足2位,会以0补足.
String p=decimalFomat.format(price);//format 返回的是字符串
参考技术B Math.round(f*100.001)/100.0

Float精度格式化

采用DecimalFormat进行相关格式化

精确到小数点后两位(精确几位,小数点后面的0就写几个)

例如:

//精确两位有效数字
DecimalFormat decimalFormat = new DecimalFormat(0.00");

decimalFormat.format(12.3425);

结果是:12.34

//精确三位有效数字
DecimalFormat decimalFormat = new DecimalFormat(0.000");

decimalFormat.format(12.3423);

结果是:12.342

但是有个问题,那就是当时输入的是2的时候,输入则是2.00或者2.000了

所以当需要去掉后面的0的时候,采用以下的格式化

//精确四位
DecimalFormat decimalFormat = new DecimalFormat("#.####");

//精确两位
DecimalFormat decimalFormat = new DecimalFormat("#.##");

这个时候当对 2 进行格式化的时候会输出2  而不是 2.0000 或者 2.00

当然,上述进行格式化之后输出的是String格式的,方便TextVeiw的赋值,但是如果想要fload的使用,那么就在转换成float即可

以上是关于java中如何实现将float精确到小数点后两位的主要内容,如果未能解决你的问题,请参考以下文章

C语言编程序时怎么控制浮点型输出的小数点精确到几位

计算钱时一定要保留两位小数吗

Float精度格式化

Float精度格式化

Java中怎么把除法精确到小数点后100位

python整数除法保留两位小数