A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 尤圣回 中级黑马   /  2012-9-16 17:33  /  1074 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

System.out.println(2.0-1.9);

3 个回复

倒序浏览
本帖最后由 皮卫凯 于 2012-9-16 17:39 编辑

那打印的是什么??都不知道这两个是啥类型的。代码写完整啊。
回复 使用道具 举报
float和double类型的主要设计目标是为了科学计算和工程计算。它们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的。然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合。float和double类型对于货币计算尤为不合适,因为要让一个float或者double精确地表达0.1(或者10的任何其他负数次方值)是不可能的。
要想得到精确结果,用BigDecimal,int或者long进行计算。二进制无法精确表示浮点小数的小数部分,所以只能取近似值,而bigdecimal是一个java类,不单是一个简单类型,用它的方法可以做到更精确的计算
回复 使用道具 举报
我觉得Java的默认数据类型不能直接显示太精确的数值,如果要显示太精确的数值,可能要用上方法。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马