簡體   English   中英

如何在Java中獲得特定值的浮點錯誤大小?

[英]How to get floating point error size at a specific value in Java?

是否有任何 Java 內置函數或更好的解決方案來查找浮點錯誤? 或者,換句話說,有沒有辦法找出可以添加到由於浮點舍入而不會被忽略的double變量中的最小值?

現在我認為獲得它的一個好方法是翻轉其中的最后一位,從變量中減去它,並將結果也返回為double精度。

double getFloatPointError(double in){
  long bits = Double.doubleToLongBits(in);
  bits^=1;
  return Math.abs(in-Double.longBitsToDouble(bits));
}

我不認為這是一個好的解決方案,因為輸出結果本身是double ,因此也容易出現浮點錯誤並可能給出不正確的結果。 另外,我可能正在用這種方法重新發明輪子,這是我想避免的。

澄清:我知道浮點值是什么,我知道當精度很重要時不應該使用它們,並且我知道為了這些目的我應該使用BigDecimal代替。 請不要發布一般浮點相關信息和建議,因為它們不太可能包含我的問題的答案。

暫無
暫無

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

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