簡體   English   中英

浮動精度更高,有可能嗎?

[英]float higher accuracy, is it possible?

如何使用fprint打印精度更高的float(或其他格式)。 例如sqrt(5)= 2.236067977543598 ....我要在點后得到100個數字。 這是可能的?

謝謝!

如果您只想打印結果,而不是以其他方式使用它,則一種方法是使用Spigot算法。

在此處有詳細記錄: http : //en.wikipedia.org/wiki/Spigot_algorithm

是的,可以使用GMP庫生成無數個小數位(或操作系統將使用的內存量)。 http://gmplib.org/此庫有多種變體, http://www.mpfr.org/

要了解為什么只有有限數量的雙精度浮點數,您需要了解計算機中浮點數的表示方式。

http://www.ntu.edu.sg/home/ehchua/programming/java/DataRepresentation.html (滾動到第4.0節)

浮點格式使用32位存儲數字,精度受到限制。 (有關更多信息,請參見http://en.wikipedia.org/wiki/IEEE_754-1985

如果此精度確實很重要,則可以考慮使用任意精度 (請參閱http://en.wikipedia.org/wiki/Arbitrary-precision_arithmetic

我認為,CPU的浮點單元本地支持的固定精度浮點類型(即float,double)對於需要許多位數精度的任何計算都不是最佳選擇。

您可以使用任意精度算法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM