現在,浮點數和雙精度數字儘管可以近似任何數字類型(雖然同樣可以說整數,但浮點數更精確),它們在內部表示爲二進制小數。例如,十分之一就可以近似如何從浮點數中提取二元分數
0.00011001100110011... (... only goes to computers precision, not infinity)
現在,任何在數學上稱爲dyadic fraction
表示數量有限位的東西二進制(無關與對ADIC)。這意味着您將其表示爲分數,分母是2的冪。例如,假設我們的計算機接近0.00011的十分之一。二進制分數爲3/32
或3/(2^5)
,接近十分之一。現在我的技術問題。 從浮點數中提取二元分數的最簡單方法是什麼?
不相關注意:如果你想知道爲什麼我想要這樣做,那是因爲我在Haskell中創建了一個超現實的數字庫。同餘分數很容易被翻譯成超現實的數字,這就是爲什麼二進制很容易被翻譯成二元的原因(雖然我肯定會遇到有理數的問題)。
對於Haskell的超現實數字庫+1。 –
它只會是這樣的左右設置是可數的Surreals。 – PyRulez
也許只有左側和右側集合可計算枚舉的那些,但對任何人都應該足夠了。 :) –