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