//方法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
//方法1:用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 进行运算时,经常出现精度丢失的问题,总是在一个正确的结果左右偏0.0000**1。 特别在实际项目中,通过一个公式校验该值是否大于0,如果大于0我们会做一件事情,小于0我们又处理其他事情。 这样的...
//将double类型转为_int64,防止精度1丢失 //将double类型转为_int64,防止精度1丢失
下面小编就为大家带来一篇解决java数值范围以及float与double精度丢失的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Java Double相加出现的怪事,浮点运算不精确问题
Java Double 类型比较大小 不能直接使用 >0
该工具用户进行double类型的精度计算,包含加法、减法、乘法、除法、精确点计算、小数点计算,限制小数点后数字
解释并解决Java开发中doubule精度问题。
Double Take 容灾解决方案介绍89页.pptx
java double:双精度浮点型
使用java语言实现16位内存数据转化为double型
float double精度的详细解释,小数点位数等等
提供double的精准加减乘除,很方便,可保留多为小数
Double Take 容灾解决方案介绍(89页).pptx
这个问题其实不是JAVA的bug,因为计算机本身是二进制的,而浮点数实际上只是个近似值,所以从二进制转化为十进制浮点数时,精度容易丢失,导致精度下降。 要保证精度就要使用BigDecimal类,而且不能直接从double...
在判断数是否为double时,会用到小数点处理的问题,一个小数点还是多个小数点
JAVA转byte[]为int,long,double
java程序中数值的精度问题,float、double容易产生精度数值问题,不适合精度计算,而bigdecimal正好解决这一问题
//精度为2,舍入模式为大于0.5进1,否则舍弃 BigDecimal b1 = new BigDecimal(Double.toString(value1.doubleValue())); BigDecimal b2 = new BigDecimal(Double.toString(value2.doubleValue())); return b1....
VC++下的四则运算,尤其是在考虑到double型时的精度丢失问题
防止Double加double后形成科学计数法问题