问题描述:
java代码如下:
@Test
public void test01(){
String num1 ="1.3";
String num2 ="1.10";
String v = String.valueOf(Double.valueOf(num1) + Double.valueOf(num2));
System.out.println(v);
}
计算输出结果:2.4000000000000004
问题分析:
Java中的简单浮点数类型float和double不能够进行运算,
解决方案:
使用BigDecimal 来计算,可以看到它的构造函数只能使用String构建,加减乘除都有对应的计算方法,直接调用,非常方便,如果想保留几位小数点,可以看它的API,包括向上向下取值,四舍五入多个方法,基本满足.
public class TestStringSum{
@Test
public void test01(){
String num1 ="1.3";
String num2 ="1.10";
String v = String.valueOf(Double.valueOf(num1) + Double.valueOf(num2));
System.out.println(v);
BigDecimal bd =new BigDecimal(num1).add(new BigDecimal(num2));
System.out.println(bd);
}
}
这里没有指定保留几位小数点,它默认是保留你计算的数值长度的小数点。