0

可能重复:
如何知道分数中的重复小数?

有没有办法判断小数是终止还是重复?

示例:我有分数:1/3,它是重复小数 - 0.33333333333333333333 我有小数 1/2,它是终止小数 - 0.5

我不知道我该怎么做。

4

1 回答 1

7

根据Wikipedia,如果分数可以以 的形式表示,则它是终止的k/(2^n * 5^m),其中 k、n 和 m 是整数。

#assumes that the fraction is already fully reduced
#e.g. numerator and denominator are coprime
function isTerminating(numerator, denominator):
    while denominator % 2 == 0:
        denominator /= 2
    while denominator % 5 == 0:
        denominator /= 5
    return denominator == 1

如果您在 IEEE 浮点数中有分数,那么它总是会终止,只要它不是 NaN 或 +/- 无穷大。浮点数中的有限数表示为c * b^q。这些术语可能会重新排列为c / (b^-q)。b 始终为 2 或 10,因此数字符合k/(2^n * 5^m)格式,因此是终止分数。

于 2013-01-23T14:12:35.730 回答