使用倍精數型態(double)運算後取四捨五入的結果不是預想的那樣精確…
仔細查詢後發現了「BigDecimal」的用法,
使用它能夠正常顯示出想要的數值。
因為是計算與「錢」有點關聯的數值,
所以精確些對我來說會比較好!
但要怎麼使用還是得記錄一下。
首先要匯入相關的函式進來:
import java.math.BigDecimal;
再來是對想要進行四捨五入的值進行輸出,
不過怪的事是要取得預想的四捨五入數值不是使用數值直接輸出,
而是先轉「字串」後再輸出………
double doubleOfNum = 65.125; //設定倍精數值 String stringOfNum = Double.toString(doubleOfNum); //先轉成字串 System.out.println(doubleOfNum + "四捨五入後是:" + new BigDecimal(stringOfNum).setScale(2, BigDecimal.ROUND_HALF_UP)); //主要用 BigDecimal(字串).setScale(至小數第幾位, BigDecimal.ROUND_HALF_UP)
/** 倍精數(double)四捨五入方法 */ import java.math.BigDecimal; public class doubleBigDecimal { public static void main(String[] args) { double doubleNum = 20.125; String stringNum = Double.toString(doubleNum); System.out.println(doubleNum + " 四捨五入後的數值 = " + new BigDecimal(stringNum).setScale(2,BigDecimal.ROUND_HALF_UP)); }
沒有留言:
張貼留言