iOS开发中小数显示错误的解决方法

项目开发的过程中经常会涉及到钱的问题,涉及到钱的地方,显示的时候一般是要求精确到分的,就是两位小数(例如:¥9.99)。但是由于系统的原因,有的时候显示的并非预期的结果,比如¥99.9显示成了¥99.9000001

打印请求数据一看,控制台显示的就是 99.9000001,一开始以为是服务器返回出错了,但是和android的一对比,就会发现这其实是iOS平台的解析的问题。遇到这种情况,就需要我们自己进行数据的转化,以达到预期的结果,代码如下:

NSString的一个类别方法

/** 字符串小数格式化 
@return 小数字符串 */
- (NSString *)decimalNumberString {      

 NSString *numberString = [NSString stringWithFormat:@"%lf",[self doubleValue]];   
 return [NSString stringWithFormat:@"%@",[NSDecimalNumber decimalNumberWithString:numberString]];
}

如果涉及到乘积,则相乘的结果也要做如上的转换,否则乘积的结果还是可能出现小数点后面很多位小数的问题。

温馨提示:计算涉及到金额的地方,最好使用double来接收,不要使用float或者CGFloat类型,后两者会出现莫名其妙的显示!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容