事情是这样的,我程序里有一个字符串常量@"4.81"
我需要把它转成@"481"
, 事实上从意义上说,并不是去掉小数点,而是把@"4.81"
的4.81
乘以100
再转成整数,最后转回字符串。
于是我就这样做了
1
|
|
结果却是
1
|
|
所以,好危险,遇到这种情况还是要检查过才行。至于解决办法…
尝试用以下代码:
1
|
|
成功输出481
。但是又尝试了以下代码:
1
|
|
理论上会四舍五入,输出482
,但是实际上输出481
。这是因为在[@"4.815" doubleValue]
系统中存储的是4.8149999
,乘以100后四舍五入就是481
,而不是482
。
因此这个方法不可靠,暂时可以用下面四舍五入的方法:
1
|
|