关于BigDecimal的构造函数与大小比较
来源:互联网 发布:上海数据库开发培训 编辑:程序博客网 时间:2024/06/05 22:40
在模拟hibernate完成sql语句的组装的时候,在java类型与数据库类型之间,规定只允许三种类型,日期型对应java.util.Date,数字型对应java.math.BigDecimal,字符型对应java.lang.String。在处理BigDecimal的时候,发现了一些有趣的现象。
大小比较:通常我们比较两个对象是否相等的时候,首先考虑的就是equals方法了。但是,在BigDecimal里面,这个就行不通了。比如:
java 代码
怎么样,你认为t是true还是false?它还真是false。BigDecimal的大小比较,1.0与1.00是不相等的,得采用它自带的compareTo方法:
java 代码
这一次,返回的i可能为-1、0、1,分别表示小于、等于、大于构造函数:解决了上面这个问题好像万事大吉了,结果,我在做测试的时候,又发现了一个莫名其妙的问题,代码如下:
java 代码
计算得到的bd值就是0.15,但是测试它偏偏告诉我:java 代码加上打印语句一看:
java 代码
发现结果是这样的:java 代码我们的 new BigDecimal(0.15)得到了一个超接近的数“0.1499999999999999944488848768742172978818416595458984375”,但它就是小于0.15。上网查得,BigDecimal有三种构造方式:
java 代码,由于浮点运算的原因,要慎用第三种方式,否则就会得到上面的结果。所以,改用
java 代码之后,测试顺利通过了。
- 关于BigDecimal的构造函数与大小比较
- BigDecimal 的比较大小与加减乘除
- BigDecimal的加减乘除及比较大小
- BigDecimal比较大小
- java BigDecimal比较大小
- BigDecimal比较大小
- BigDecimal如何比较大小
- BigDecimal比较大小
- BigDecimal比较大小
- BigDecimal 比较大小
- BigDecimal类型比较大小
- BigDecimal类型比较大小
- BigDecimal如何比较大小
- BigDecimal如何比较大小
- BigDecimal格式比较大小
- BigDecimal类型比较大小
- BigDecimal类型比较大小
- BigDecimal类型比较大小
- MFC Cstring 和int 类型的转化
- XPath implementation in Clojure
- 品人生就像似品茶
- 爱、就疯狂、不爱、就坚强,你还相信爱情么
- Spring连接MySQL、Oracle和SQL Server的数据库运动连接属性
- 关于BigDecimal的构造函数与大小比较
- POJ1005,I Think I Need a Houseboat,数学水题
- 密室抓小偷问题
- U-boot源码中的makefile分析
- wchar转成char
- 8种常见的Java不规范代码
- java获取时间戳,及文件最后修改时间。
- 新版论坛全民公测!
- eclipse突然打不开,在装入工作台时卡住