我可以看到有數百條關於舍入小數位的主題。然而,我搜索了高和低,似乎無法找到與我的問題相匹配的以前的實例。 我對Java很新。如何在Java中將計算結果四捨五入到小數點後n位
我想計算一個線的斜率,將它分配給一個變量,並將該變量的內容格式化爲4個小數位。
我試過DecimalFormat(看起來返回一個字符串,我需要一個數值,可以在另一個計算階段使用) 我試過BigDecimal(似乎無法弄清楚如何構造它和setScale)。
下面是我的代碼:
import java.math.BigDecimal;
public class Scratch {
public static void main(String[] args) throws Exception {
BigDecimal slope1, slope2, slope3;
slope1 = new BigDecimal((8 - 8)/(20 - 5));
slope2 = new BigDecimal((9 - 8)/(22 - 5));
slope3 = new BigDecimal((9 - 8)/(22 - 20));
slope1 = slope1.setScale(4);
slope2 = slope1.setScale(4);
slope3 = slope1.setScale(4);
System.out.println(slope1);
System.out.println(slope2);
System.out.println(slope3);
}
}
輸出的結果是:
0.0000
0.0000
0.0000
如何我構建大數據對象,設置它的規模,並做計算的方式,將給計算實際結果到4位小數而不是0.0000?
任何幫助將不勝感激。幾個小時我一直在搞這個。
數據到達之前的BigDecimal計算完成。基本上你正在做'slope3 = new BigDecimal(0);' – njzk2 2014-09-19 21:03:39
你從來不會從slope1以外獲得除零之外的任何東西 - 因爲分子(8-8)爲零,就像其他人一樣 - 正如你所提到的那樣需要把比率變成雙重第一。 – HexedAgain 2014-09-19 21:17:36