败犬日报 2025-11-13
败犬日报 2025-11-13
1. double 有多少位十进制有效数字
15。
众所周知 double 有 1 bit 符号位,11 bit 指数位,52 bit 尾数位,决定有效数字的是尾数。
一个估算思路是求 double 能精确表示的整数范围。由于 IEEE 754 规定尾数之前还有一个隐含的“1”,所以答案是
(注意这只是一个估算,严谨证明留作课后习题)
2. double 能提供 15 位有效数字,是不是 1e-16 和 0 区分不出来
不是,1e-16 是一位有效数字。
正确的是 1 + 1e-16 和 1 分不出来。
python 测试如下:
python
>>> 1 + 1e-15 == 1
False
>>> 1 + 1e-16 == 1
True3. MSVC 怎么不能 std::println 一个 C 数组
MSVC 还没实现呢。