double减法不准确的那些事儿
CREATE TABLE `helei` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`num1` double DEFAULT NULL,
`num2` double DEFAULT NULL,
`num3` decimal(5,3) DEFAULT NULL,
`num4` decimal(5,3) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=latin1;
mysql> select * from helei;
+----+------+------+-------+-------+
| id | num1 | num2 | num3 | num4 |
+----+------+------+-------+-------+
| 1 | 1 | 1 | 1.000 | 1.000 |
| 2 | 2 | 2 | 2.000 | 2.000 |
| 3 | 3 | 4 | 3.000 | 4.000 |
| 4 | 6 | 5 | 6.000 | 5.000 |
| 5 | 3.3 | 4.4 | 3.300 | 4.400 |
| 6 | 6.6 | 5.5 | 6.600 | 5.500 |
+----+------+------+-------+-------+
6 rows in set (0.00 sec)
mysql> select (num2-num1)num5,(num4-num3)num6 from helei;
+---------------------+--------+
| num5 | num6 |
+---------------------+--------+
| 0 | 0.000 |
| 0 | 0.000 |
| 1 | 1.000 |
| -1 | -1.000 |
| 1.1000000000000005 | 1.100 |
| -1.0999999999999996 | -1.100 |
+---------------------+--------+
6 rows in set (0.00 sec)
可以看到double列的减法出现了问题,我们可用demical替换即可
本文出自 “岁伏” 博客,请务必保留此出处http://suifu.blog.51cto.com/9167728/1783861
double减法不准确的那些事儿的更多相关文章
- Java中 float、double使用注意问题
在java中运行一下代码 System.out.println(2.00-1.10);输出的结果是:0.8999999999999999很奇怪,并不是我们想要的值0.9 再运行如下代码:System. ...
- NSDecimalNumber用于精度准确的计算
在处理金额计算时,往往会涉及到小数,由于Double类型不准确,无法做到产品的要求.为了保证金额计算的准确性,建议使用NSDecimalNumber. 1.创建对象(常用的方法) // mantiss ...
- java float、double精度研究(转)
在java中运行一下代码System.out.println(2.00-1.10);输出的结果是:0.8999999999999999很奇怪,并不是我们想要的值0.9 再运行如下代码:System.o ...
- double精度的坑与BigDecimal
近期经常接触支付相关的功能,在开发及测试过程中,开始金额都使用的是double类型,而近期新进的需求存在支付时打折的情况,也就是会出现如 1.23元的情况,那么这时候问题来了,如果是直接使用1.23进 ...
- Java double 加、减、乘、除
double类型的数值接相加的时候,结果可能出现精度误差为此Java提供了高精度计算的方法:java.math.*里面提供了BigDecimal类 import org.junit.Test; imp ...
- Hive函数大全
一.关系运算: 1. 等值比较: = 语法:A=B 操作类型:所有基本类型 描述: 如果表达式A与表达式B相等,则为TRUE:否则为FALSE 举例: hive> select 1 from l ...
- hive支持sql大全
转自:http://www.aboutyun.com/thread-7316-1-1.html 一.关系运算:1. 等值比较: = 语法:A=B 操作类型:所有基本类型 描述: 如果表达式A与表达式B ...
- hive支持sql大全(收藏版)
hive操作数据库还是比较方便的,因此才会有hbase与hive整合.下面我们hive的强大功能吧.为了增强阅读性,下面提几个问题: 1.hive支持哪些运算符? 2.hive是否支持左右连接? 3. ...
- Hive常用函数
字符串函数 字符串长度函数:length 语法: length(string A) 返回值: int 说明:返回字符串A的长度 举例: hive> select length(‘abcedfg’ ...
随机推荐
- PHP模板解析类实例
作者:mckee 这篇文章主要介绍了PHP模板解析类,涉及php针对模板文件的解析与字符串处理的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下 <?php class template { ...
- .NET程序默认启动线程数
问:一个.NET程序在运行时到底启动了多少个线程? 答:至少3个. 启动CLR并运行Main方法的主线程 调试器帮助线程 Finalizer线程 class Program { static void ...
- Base64编码与图片互转
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import ...
- 用Date.ToString()输出中英文月份
DateTime.Now.ToString("dddd,dd MMMM,yyyy")//输出 星期三,30 一月,2008DateTime.Now.ToString(" ...
- FIR滤波器的实现方法(转)
源:http://blog.sina.com.cn/s/blog_493520900102uy26.html 内容来自于上篇博文,第七章,FIR滤波器 http://blog.sina.com.cn/ ...
- centos lvm常用命令
# vgs -a VG #PV #LV #SN Attr VSize VFree cinder 1 0 0 wz--n- 30.39g 30.39g os ...
- 推荐!国外程序员整理的Java资源大全
http://www.importnew.com/14429.html 本文由 ImportNew - 唐尤华 翻译自 github akullpp.欢迎加入翻译小组.转载请见文末要求. 构建 这里搜 ...
- Hibernate批量提交
的 批量插入(Batch inserts) 如果要将很多对象持久化,你必须通过经常的调用 flush() 以及稍后调用 clear() 来控制第一级缓存的大小. Session session = s ...
- hadoop hdfs uri详解
body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...
- c语言 inline函数
大学在教科书上学习过inline函数,定义为inline函数之后,会省去函数调用的开销,直接嵌套汇编代码,取代函数调用,提高效率. google的google c++ style guide 1.in ...