编程之美 精确表达浮点数
假设浮点数为 X 的表示形式为
X = 0.a1a2...an (b1b2...bm)
那么 10^N * X = a1a2...an.(b1b2...bm)
同时, 令 Y = 0.(b1b2...bm)
那么 Y*10^M = b1b2...bm(b1b2...bm)
得到等式 Y*10^M - b1b2...bm = Y, 可以解出 Y
将 Y 带入 10^N*X 可解出 X
假设浮点数为 X 的表示形式为
X = 0.a1a2...an (b1b2...bm)
那么 10^N * X = a1a2...an.(b1b2...bm)
同时, 令 Y = 0.(b1b2...bm)
那么 Y*10^M = b1b2...bm(b1b2...bm)
得到等式 Y*10^M - b1b2...bm = Y, 可以解出 Y
将 Y 带入 10^N*X 可解出 X