sqlserver2008 float 做减法,为什么会是这样的结果?见图片

select (cast (5.412 as float) -cast ( 5.41 as float) )

结果:
0.00199999999999978

数字型的几种数据类型中,float、double都是有精度的限制的,其计算小数时都是近似值,就会出现这个结果。
decimal、numeric、money不存在精度问题,如果需要的精度较高,建议用这几种。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-04-07
float 精度的问题。

select round((cast (5.412 as float) -cast ( 5.41 as float) ),4)本回答被提问者和网友采纳
第2个回答  2014-08-15
学习下 。。。。

sqlserver2008 float 做减法,为什么会是这样的结果?见图片
数字型的几种数据类型中,float、double都是有精度的限制的,其计算小数时都是近似值,就会出现这个结果。decimal、numeric、money不存在精度问题,如果需要的精度较高,建议用这几种。

int和float的区别是什么?
- float: float通常用于表示具有小数部分的值,例如测量、计算等需要更精确的数值。例句:- int: 这个程序计算了一个整数变量的阶乘。 (This program calculates the factorial of an integer variable.)- float: 这个程序计算了一个圆的面积,结果是一个浮点数。 (This program calculates the area of...

double类型与double类型做加法的结果?
因为3和2都是整数类型的,所以认为3\/2的结果也是整数类型的,舍弃后面的尾数,仅留下整数位的1。而为x和y为double类型,是双精度浮点型。双精度浮点型和整数类型做加法,精度取双精度浮点型,所以,y=x+3\/2=1.0+1=2.0。双精度型性质:双精度型占8 个字节(64位)内存空间,其数值范围为-1...

java基础都有那些?
&: 只有两边都为true结果是true。否则就是false。 |:只要两边都为false结果是false,否则就是true ^:异或:和或有点不一样。 两边结果一样,就为false。 两边结果不一样,就为true. & 和 &&区别: & :无论左边结果是什么,右边都参与运算。 &&:短路与,如果左边为false,那么右边不参数与运算。 | 和|| 区别:...

相似回答