大佬教程收集整理的这篇文章主要介绍了objective-c – NSNumber和float – 类型铸造古怪,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
NSnumber * number = [NSnumber numberWithFloat:[[response objectForKey:@"number"] floatValue]];
所以,上面发生的事实上是将NSnumber转换为float并使用该float创建新的NSnumber.有什么奇怪的呢?奇怪(对我来说)是上面的行生成NSnumber值为135.99001而不是135.99这是正确的.
我知道浮点数算法真的搞砸了,特别是像PHP这样的语言(0.2 0.7不等于0.9),但是我没想到像Objective-c这样的语言,这是C语言的超集,我会发现这样的混乱至.有没有人对这个问题有一个很好的解释?
与double相比,float的精度非常有限.你可以肯定,在大多数情况下,由于精度有限,[NSnumber numberWithFloat:…]会给你不同的结果.
以上是大佬教程为你收集整理的objective-c – NSNumber和float – 类型铸造古怪全部内容,希望文章能够帮你解决objective-c – NSNumber和float – 类型铸造古怪所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。