关于解决double类型数据显示问题的解决

在项目中经常出现double类型的数据在显示时0000000000...1或者999999999999...9等情况出现,这种情况有很多解决情况,可以从后端解决也可以从前端解决。

前端解决:

方法一:使用toFixed()函数

toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。
使用语法为:NumberObject.toFixed(num);其中num是指规定小数位数,是 0 ~ 20 之间的值,包括 0 和 20。如果省略了该参数,将用 0 代替。

var num = 557127.1299999999;
num.toFixed(2);

输出结果为:557127.13

后端使用java解决:

方法一:使用BigDecimal对象

前面说过详细的说明,不做详细说明了,详解见 https://www.jianshu.com/p/b2708c1b2c77

// import java.math.BigDecimal;
double num = 557127.1299999999;
num = new BigDecimal(num).setScale(7, BigDecimal.ROUND_HALF_UP).toPlainString();
System.out.println("num:" + "\n" + num);
String str = "557127.1299999999";
str = new BigDecimal(Double.parseDouble(str)).setScale(7, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println("str :" + "\n" + str );

方法二:使用DecimalFormat对象

// java.text.DecimalFormat;
double num = 557127.1299999999;
DecimalFormat df = new   java.text.DecimalFormat("#.00");
String str = df.format(num);
System.out.println("str :" + "\n" + str );

以上就是一些简单的处理java中double类型数据计算导致精度缺失的解决办法。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容