看看还记得不。
高精度浮点数用分数形式表示。通常表示一个无线小数由有限部分+无限循环部分组成。
令x = 0.a1a2...an(b1b2..bm)。后面的b1b2...bm指无限循环部分。
则 10^n*x = a1a2...an + 0.b1b2...bm(b1b2...bm)。得出x=(a1a2...an+y)/(10^n)——(1)
令y = 0.b1b2...bm(b1b2...bm):
则 10^m*y = b1b2...bm + 0.b1b2...bm(b1b2...bm)。 得出y=(b1b2...bm)/(10^m-1)——(2)
这样就得到了分数表示式,再对上下求gcd就好。
例子:0.3(33) = (3+33/99)/10 = 1/3。