0
可能重複:
How to know the repeating decimal in a fraction?有沒有辦法來判斷一個小數是在C#中終止還是重複?
有沒有辦法判斷一個小數終止或重複?
實施例: 我有分數:1/3和它的重複十進制 - 0.33333333333333333333 我有分數1/2和它的終止十進制 - 0.5
我沒有任何想法如何我可以做到這一點。
可能重複:
How to know the repeating decimal in a fraction?有沒有辦法來判斷一個小數是在C#中終止還是重複?
有沒有辦法判斷一個小數終止或重複?
實施例: 我有分數:1/3和它的重複十進制 - 0.33333333333333333333 我有分數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
如果你有在IEEE浮動的比例,那麼它永遠終止,只要它不是NaN或+/-無窮大。漂浮物中的有限數字表示爲c * b^q
。條款可能重新排列爲c/(b^-q)
。 b總是2或10,所以這個數字符合k/(2^n * 5^m)
格式,因此是終止分數。
相關:http://stackoverflow.com/questions/8946310/how-to-know-the-repeating-decimal-in-a-fraction – Oded
你是什麼意思的「重複」?非理性的數字?任何不能用浮點數表示的數字?由雙? – Oren
謝謝,我在stackoverflow上搜索,但我沒有看到。 – Yozer