回答
0.1是二进制(0.0001100110011 ...)中的“重复小数”,因此0.1的表示形式不精确。 NSLog可能会四舍五入或截断输出。
在* binary *中重复* decimal *? (我知道你的意思,这只是一个奇怪的说法。)() – 2012-01-12 23:11:01
把它称为“二进制重复二进制”听起来更糟糕。有没有一种标准的方法来引用其他基地中的重复小数部分的数字? – 0x5f3759df 2012-01-12 23:12:13
“一个有重复小数部分的数字”?但我承认“重复小数”可以清楚地表达出想法 – 2012-01-12 23:15:47
- 1. 复位转型 - objc
- 2. 类型类Haskell中的数据类型
- 3. 在方法的返回类型中指示一个ObjC类别
- 4. NSManagedObject的子类的@objc(ClassName)
- 5. 数据类型
- 6. 类型类多态数据类型
- 7. 假设数据类型的松散类型数据集
- 8. 如何理解C++数据类型的本地数据类型?
- 9. Umbraco数据类型。检索可能的数据类型列表。
- 10. 数据类型(我认为的数据类型?)
- 11. [数据类型]和[数据类型[]]之间的差异
- 12. ARC/ObjC++:C++的ObjC容器
- 13. Python数据类型
- 14. dbUnit数据类型
- 15. mysql数据类型
- 16. 数据类型DataAnnotation
- 17. DataMapper数据类型
- 18. python数据类型
- 19. jquery数据类型
- 20. oracle数据类型
- 21. SQLite数据类型
- 22. 从数据类型
- 23. Blob数据类型?
- 24. MySQL数据类型?
- 25. InterRunnableVariable数据类型
- 26. AdventureWorks数据库中的数据类型
- 27. 数据库主键的数据类型
- 28. SQL类数据类型
- 29. 什么是列数据类型Sharepoint列数据类型中的业务数据?
- 30. Objc中的SecRandomCopyBytes提供程序(SHA1PRNG或NativePRNG)类型?
要引用[维基百科文章](http://en.wikipedia.org/wiki/Floating_point)的主题,“某些数字(例如1/3和0.1)不能完全用二进制浮点数表示,不管精度如何,都要指出。“ – aroth 2012-01-12 23:09:13
这是一个常见的问题,它与目标c相比,更多地涉及浮点表示的一般计算机科学主题。我会标记许多重复问题之一。 – 2012-01-12 23:12:29
至于为什么'NSLog'打印的方式与'gdb'不同,32位浮点数对于大约7位数的精度是有好处的。因此,似乎'NSLog'可能会在第七位后截断以提供更有意义的输出,而'gdb'则显示了存储在变量中的确切值,但未考虑精度。有趣的是,我认为有人可能会认为两种行为在他们的特定背景下都是正确的。 – aroth 2012-01-12 23:12:42