可能重复:
如何知道分数中的重复小数?
有没有办法判断小数点是终止还是重复?
示例:我有分数:1/3,并且它是重复的小数-0.33333333333333333333333我有分数1/2,并且它是终止的小数-0.5
我不知道我该怎么做。
根据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
Run Code Online (Sandbox Code Playgroud)
如果您的分数在IEEE浮点数中,则只要它不是NaN或+/-无穷大,它就总是终止。浮点数有限表示为c * b^q。可以将这些术语重新排列为c / (b^-q)。b始终为2或10,因此数字适合k/(2^n * 5^m)格式,因此为终止分数。
| 归档时间: |
|
| 查看次数: |
2270 次 |
| 最近记录: |