黑马程序员技术交流社区
标题:
小数点保留问题
[打印本页]
作者:
黑马新人
时间:
2014-11-24 15:45
标题:
小数点保留问题
昨天在做阳哥给的练习题的时候,碰到一个小问题。阳哥要求函数结果小数点后保留8位以上有效数字。在网上查了一下保留有效位数小数的方法,一般会用到2种方法。
一种是DecimalFormat,在创建对象、调用构造函数的时候设置数字格式,如new DecimalFormat("###.00"),就是保留2位小数,然后对象调用Format()函数就会返回结果。就算没有结果没有小数,也会用0补齐。如:1.00。
第二种是调用Math.round(float a)方法。如果想保留2位小数的话,可以使用Math.round((float)num*100)/100, Math.round(float a)返回值 int num=(int)Math.round(a+0.5d) ,但是这种方法末尾的0是不会显示的。
所以DecimalFormat应该是调用了Math.round()方法。通过接收的字符串,用“."分割,判断要保留的有效位数n,然后将String转成Float类型值,然后用round方法进行运算,再将结果转成字符串存入StringBuilder,判断小数点位数,决定补多少个0。
作者:
王小忠
时间:
2014-11-24 16:13
额~~我没有用你说的方法,我是把结果转成字符串,再转成字符数组,然后判断长度,最后输出,结果就能得到至少保留八位小数了,具体代码,就不上传了:lol
作者:
知足
时间:
2014-11-24 20:51
两种方法我都用了:lol
作者:
cs8630323
时间:
2014-11-24 21:06
还是pintf方法高端
作者:
张卫贤
时间:
2014-11-24 21:32
受教了,至少学会了一种解决方法
作者:
黑马学前班
时间:
2014-11-24 21:47
原来 还可以这么搞
作者:
javaAndroid
时间:
2014-11-24 23:25
String.format("结果为:%.14f", result); // 保留了14位小数
还有这个方法,这个输出比较方便。
作者:
朱奕东
时间:
2014-11-25 18:56
NICE这刚好是我想要的·····
作者:
zhangyangLengen
时间:
2014-11-25 21:27
谢谢分享,试了试,可以
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2