编程之美 set 2 精确表达浮点数
有限小数和无限循环小数转化成分数
比如 0.9 -> 9/10
0.333(3) -> 1/3
解法
1. 主要涉及到一个数学公式的计算.
2. 对于有限小数, 分子分母求最大公约数即可
3. 对于无限循环小数, 第一步是将非循环部分剔除. 仅讨论循环部分.
4. 0.b(b.size() = c ==> b.b(b.size()) = c*pow(10, b.size()) ==> 0.b(b.size()) = c*k-c ==> c = (pow(10,b.size()-1)/b