表字段numeric(19,6)类型允许6位小数,但我表中的数据最多只保留了2位小数,进行了一个复杂查询后精度变了,比如383.2001或125.8996,正确的数据应该是383.20和125.90,有的误差0.0001,有的误差0.0004,但查询中只用到了sum整个查询大概有4~5个子查询,先把各个结果放在临时表中,最后用一个查询汇总。问题:
1.这是不是正常的?该怎么处理使得结果准确。
2.目前如果四舍五入保留2位小数还是正确的,会不会有隐患使得结果四舍五入后变成383.21或125.89,这样的后果可就严重了。
1.这是不是正常的?该怎么处理使得结果准确。
2.目前如果四舍五入保留2位小数还是正确的,会不会有隐患使得结果四舍五入后变成383.21或125.89,这样的后果可就严重了。
解决方案 »
- 这个数据库操作代码看的不是很懂,请高手帮我详细注释一下!谢谢!
- 请教对数据表所有列求累加的问题?
- 如何使用SELECT TOP 10到100 from cptp的语句
- TRIGGER中对另外某个表分别进行update与select操作时会有问题吗?
- 删除外键的语法怎么写呀?大哥们
- 这几天纠结的sql server的使用问题
- liliah再请教:办公设备:sb_id,sydw(使用单位),price(价格),。。计算机(办公设备分类之一种):sb_id,CPU,MEmory,...,sydw,price这两个表是什么设计好?
- 疑难杂症,名医请进!!!
- 有没有办法获得触发器的版本号??
- 关于安装MySQL时候遇到的几个问题
- 如何把SQL2005的数据库转到SQL2000?
- 外部sql数据库的连接问题?
返回数字表达式并四舍五入为指定的长度或精度。
语法
ROUND ( numeric_expression , length [ , function ] ) 参数
numeric_expression精确数字或近似数字数据类型类别的表达式(bit 数据类型除外)。length是 numeric_expression 将要四舍五入的精度。length 必须是 tinyint、smallint 或int。当 length 为正数时,numeric_expression 四舍五入为 length 所指定的小数位数。当 length 为负数时,numeric_expression 则按 length 所指定的在小数点的左边四舍五入。function是要执行的操作类型。function 必须是 tinyint、smallint 或 int。如果省略 function 或 function 的值为 0(默认),numeric_expression 将四舍五入。当指定 0 以外的值时,将截断 numeric_expression。返回类型
返回与 numeric_expression 相同的类型。
我也知道round可以,但是是加在每个子查询上,还是只要最后一个汇总查询上?如果子语句太多难道不会四舍五入超过0.01的情况吗,那就对结果产生影响了?