簡體   English   中英

Java中的浮點計算錯誤

[英]Floating point calculation error in Java

幫幫我,在加上負數的雙精度值時遇到問題
一個顯示問題的示例程序:

    double newX = 850.0;
    double delta = -1.6994427191177073E12;
    double total = delta + newX;
    System.out.println("newX:" + newX);
    System.out.println("delta:" + delta);
    System.out.println("total:" + total);

但是給定的輸出是:

 newX:850.0
 delta:-1.6994427191177073E12
 total:-1.6994427182677073E12

我希望總價值約為“ 848.30055729”。 如何處理此計算?

問候,

丹尼斯

計算正確。

讓我們從科學計數法轉換您的數字開始

-1.6994427191177073E12

到十進制定點表示法:

-1699442719117.7073

這是因為E12表示E左邊的數字乘以10 12

一旦執行了該數字和850.0 ,就可以得到結果

-1699442718267.7073

通過將小數點一直移到最左側將其轉換為科學計數法后,程序將輸出結果。

暫無
暫無

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

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