NSString floatValue 精度问题

2018-01-18  本文已影响55人  RYANIM

@"1234567.83" => 1234567.875 ?
float 有 32 位, 指数位为 8, 尾数为23, 符号 1位.
[图片上传中...(2492650-c9b9b53c2a108d3e.gif-b89e30-1516248262770-0)」

指数范围 -127~128
尾数 24bit (默认隐藏首位 1)
符号 0~1

精度取决于 尾数了.
如果要保留两位小数的精度, 需要耗费 7 bit (2^7 > 100). 剩下 15 位(2^15 -1) 32,767 . 超过 这个值, 两位小数精度就不能保证了.

上一篇下一篇

猜你喜欢

热点阅读