黑马程序员技术交流社区

标题: 1.21-1.0这个怎么算才能等于0.21 [打印本页]

作者: fanshuai    时间: 2015-2-19 15:02
标题: 1.21-1.0这个怎么算才能等于0.21
本帖最后由 fanshuai 于 2015-2-22 12:56 编辑

都是double 类型的值,怎么进行相减才能得到0.21?肯定有什么规则吧。


作者: fantacyleo    时间: 2015-2-19 15:41
double和float都有精度限制,尽管计算结果不一定“好看”,但精度一般来说够用了。如果要追求更高精度,可以用BigDecimal包,如果要追求结果“好看”,可以根据你要求的精度对操作数先放大再运算。比如1.21-1改成121-100,得到21后再除100变为0.21
作者: Gonnaloveu    时间: 2015-2-19 16:25
fantacyleo 发表于 2015-2-19 15:41
double和float都有精度限制,尽管计算结果不一定“好看”,但精度一般来说够用了。如果要追求更高精度,可 ...

惊现大神
作者: franksight    时间: 2015-2-19 17:43
System.out.println((float)(b1-b2)),,,,,强转成float,因为double进度太高了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2