编程之美 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

 

posted @ 2014-02-24 15:32  SangS  阅读(235)  评论(0编辑  收藏  举报