在專案中遇到乙個問題用double型別的數字(小數點後只有兩位)相加或者相減得出的結果並不是預期的結果,乘除也一樣。
double d1 = 1.11;
double d2 = 11.02;列印結果為:12.129999999999999
//保留兩位小數
string.format("%.2f", double);
decimalformat df = new decimalformat("#.00")
df.format(double)
double d = 0.3;
bigdecimal b = new bigdecimal("0.3");
// 使用構造器時最好使用string的構造器
bigdecimal bd = new bigdecimal(d.tostring());
b.add(bd);
b.subtract(bd);
b.multiply(bd);
bigdecimal result = b.divide(bd);
//去掉bigdecimal末尾多餘的0並tostring
//如果直接tostring有可能是科學計數,需要 toplainstring()。
result.striptrailingzeros().toplainstring()
java保留double型別固定小數字數的方法
方法一 用string類的format方法 例如 double x 1.23456789 system.out.println string.format 6f x 表示四捨五入保留六位小數。system.out.println string.format 3f x 表示四捨五入保留3位小數 輸出為...
Java中double型別資料的比較
double a 0.001 double b 0.0011 bigdecimal data1 new bigdecimal a bigdecimal data2 new bigdecimal b data1.compareto data2 非整型數,運算由於精度問題,可能會有誤差,建議使用bigd...
在JAVA中怎麼比較Double型別資料的大小?
double a 0.001 double b 0.0011 bigdecimal data1 new bigdecimal a bigdecimal data2 new bigdecimal b data1.compareto data2 非整型數,運算由於精度問題,可能會有誤差,建議使用bigd...