2.6精確表達浮點數(shù)
一問題描述:
使用分數(shù)形式來表示小數(shù),有限小數(shù)和無限循環(huán)小數(shù)都可以轉(zhuǎn)化為分數(shù)。
例如: 0.9 = 9 / 10 。
0.33333(3) = 1 / 3 。
二問題分析:
(1) 若是有限小數(shù),則可以使用以下方法: 0.a1 a2 a3 a4 a5 ..an = a1 a2 a3 a4 a5 a6 an / 10 ^ n
(2) 下面主要考慮無限循環(huán)小數(shù):
設(shè) X = 0.a1 a2 a3 a4 a5 ... an . b1 b2 b3 b4 ... bm(b1 b2 b3 b4 ... bm)
10 ^ n * X = a1 a2 a3 a4 a5 ... an . b1 b2 b3 b4 ... bm(b1 b2 b3 b4 ... bm)
Y = 0. b1 b2 b3 b4 ... bm(b1 b2 b3 b4 ... bm)
10 ^ m * Y = b1 b2 b3 b4 ... bm . (b1 b2 b3 b4 ... bm)
10 ^ m * Y - Y = b1 b2 b3 b4 ...bm
Y = b1 b2 b3 b4 ... bm / (10 ^ m - 1)
則X =( (a1 a2 a3 a4 ... an) * (10 ^ m -1 ) + b1 b2 b3 b4 ...bm) / (10 ^ n)*(10 ^ m - 1)
(3)化簡到最后,分子分母可能會出現(xiàn) 不是最簡的形式。 A / B ,則需要調(diào)用(A / gcd(A ,B)) / (B / gcd(A , B)) ,即已經(jīng)化簡完畢。