您的位置:首页 > 其它

float类型能精确表达整型数100亿和1000亿吗?

2013-04-17 16:30 465 查看
100亿:

100亿 = 10000000000

用 float 类型在内存中的表示为:0x501502F9

展开为二进制形式:0 10100000 00101010000001011111001

指数部分:10100000 = 160

还原为整型数:1.00101010000001011111001 * 2^(160-127)

= 1001010100000010111110010000000000 (二进制)

= 10000000000 (十进制)

1000亿:

1000亿 = 100000000000

用 float 类型在内存中的表示为:0x51BA43B7

展开为二进制形式:0 10100011 01110100100001110110111

指数部分:10100011 = 163

还原为整型数:1.01110100100001110110111 * 2^(163-127)

= 1011101001000011101101110000000000000 (二进制)

= 99999997952 (十进制)

结论:

1、 float类型能精确表达 100亿,不能精确表达 1000亿。

2、 float类型能表达的有效数字最小是 6-7位,最大未知。

3、 从 -16777216 到 16777216 之间的整数能被float类型精确表达。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: