在项目中,遇到一个问题,关于金额的设置,把金额设置的很大时,如:9999999999999…n个9,将其转为字符串,此金额就会改变,以科学技术法的形式表现。
此问题并不会影响金额之间的计算,只是在页面上再次显示金额的时候不对。
解决方案:用DecimalFormat来格式化double和float的结果,这样转换成字符串就不会采用科学计数法。
举例:
double money=9999999999999;
DecimalFormat df =new DecimalFormat("#");
System.out.println(df.format(d));
结果如下:9999999999999。
这样格式化一下,问题就解决了,如果用int类型,也不会出现科学计数法的问题,只是double和float类型会有问题,记录一下,方便查阅。
---------------------