![](/img/trans.png)
[英]How to avoid floating point error calculate average value in postgres db and get it in java application?
[英]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
代替。 請不要發布一般浮點相關信息和建議,因為它們不太可能包含我的問題的答案。
我認為您正在尋找Math.ulp
:
https://docs.oracle.com/javase/7/docs/api/java/lang/Math.html#ulp(double)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.