String转Double后计算值出错的问题解决"/>
关于String转Double后计算值出错的问题解决
在做String转Double后一般的加减乘除都能得到正确结果有个别会出现偏差,比如:
String s1="0.21";
String s2="0.02";
double sum = Double.valueOf(s1)+Double.valueOf(s2);
或者
double d1=0.21;
double d2=0.02;
double sum = d1+d2;
得到的sum不是0.23而是0.22999999999999998
这里就会出现偏差了,所以为了解决这种问题,我写了一个求和的方法,减、乘、除等也只稍加修改即可,所以就不写出来了。
下面开始说明我的思路:
首先我把2个字符串s1和s2以小数点分割,分成整数部分和小数部分,如果没有小数点直接求和运算就能得到结果所以不考虑这个情况,接下来,我把分成整数和小数部分我都当成整数求和,那么就只要判断小数相加后有没进位就可,一般相加进位只有1,相乘就不是了(这里只说相加,如果最后你按照相加的逻辑推演不出相乘的方法你给我留言),最后把整数和小数部分一拼接就好了,输出的字符串就是结果了,你可以把这个String类型以任意你想要的int,double等类型返回也是可以的。
代码演示:
public void test() {
String s1="123.99";
更多推荐
关于String转Double后计算值出错的问题解决
发布评论