left,right是两个String类型的字符串,myres是一个double类型的变量。

如果我们用下面的语句把left,right先转换为double后直接加法的话,如果作3.3乘3之类的运算(被乘数是奇数会出问题),会变成9.8888888889,而不是我们想要的9.9,这就是精度缺失。

myres=Double.valueOf(left)+Double.valueOf(right);

解决方法:

double lt=Double.parseDouble(left);
double rt=Double.parseDouble(right);
BigDecimal b1 = new BigDecimal(Double.toString(lt));
BigDecimal b2 = new BigDecimal(Double.toString(rt));

加法

myres=b1.add(b2).doubleValue();

return myres;

减法

myres=b1.subtract(b2).doubleValue();

return myres;

乘法

myres=b1.multiply(b2).doubleValue();

return myres;

除法

myres=b1.divide(b2).doubleValue();

return myres;

返回的myres是正确的结果,这个也可以应用于Android开发过程中。

最新文章

  1. Java Native Interface 四--JNI中引用类型
  2. C#学习网站记录
  3. webshell
  4. 高大上技术之sql解析
  5. CentOS服务器配置发送邮件服务
  6. [Android] 混音器AudioMixer
  7. Visual Studio 2015 开发MVC4出现错误
  8. 优先队列(priorityqueue)
  9. SpringBoot 中常用注解
  10. [CQOI 2015]选数
  11. 一个spring mvc 需要用到到文件
  12. lua分割字符串
  13. TensorFlow从入门到理解(四):你的第一个循环神经网络RNN(分类例子)
  14. python 可迭代对象
  15. 使用Pandas_UDF快速改造Pandas代码
  16. POJ 3126 Prime Path (素数+BFS)
  17. 深度学习课程笔记(十七)Meta-learning (Model Agnostic Meta Learning)
  18. MFC模块状态(一)
  19. Android中线程通信的方式
  20. http 请求和格式

热门文章

  1. Linux时间子系统(十二) periodic tick
  2. PowerDesigner列名作为注释
  3. Linux前台、后台、挂起、退出、查看命令汇总
  4. opencv源代码分析:icvGetTrainingDataCallback简单介绍
  5. Angularjs Module类的介绍及模块化依赖
  6. [na]pc加入域认证细节
  7. 教你轻松自己定义ViewPagerIndicator
  8. %02x和%2x区别
  9. prequeue receive queue backlog queue
  10. angular学习笔记(九)-css类和样式2