//方法1:用NumberFormat类来格式化数字,觉得这种算数运算比较直观
NumberFormat numberFormat=NumberFormat.getNumberInstance();
double a = 11540.0;
double b = 0.35;
double result = a * b;
System.out.println(result); //4038.9999999999995
System.out.println( numberFormat.format(result)); //4,039返回是数字是string类型,有,分割
System.out.println(Double.valueOf(numberFormat.format(result).replaceAll(",", "")));//4039.0
//方法2:用BigDecimal来处理,multiply是表示乘的方法,但看起来很不直观,习惯了算数运算,但也很多人用这种方法
BigDecimal aa = new BigDecimal(String.valueOf(a));
BigDecimal bb = new BigDecimal(String.valueOf(b));
result = aa.multiply(bb).doubleValue();
System.out.println(result);
java double精度丢失的解决方案
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...