float有精度问题,为什么还要存在 如题,直接用decimal代替不就好了吗,存在有什么用呢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 --float用于一些近似计算,并且数据类型占用内存大小不同,存在就有它存在的必要性! 我等做信息系统的估计很少接触到float的使用,但是存在肯定是有道理的,估计更高级计算的时候能用到吧 float是浮点数,能不指定小数位,精度很高。decimal是精确数,可以指定精度。decimal指定了精度之后就是定长的了。 你哪天搞一个导弹拦截系统或精确打击系统时,用的坐标应该不可能精确类型decimal,因为这种导弹再精确也不可能一点误差也没有。一些GPS定位系统、地理等也会使用这种类型 http://www.cnblogs.com/im/archive/2008/02/22/1077197.html float为二进制,decimal为十进制因为用二进制表示,转为十进制时会有误差。对x86处理器中的87处理器,计算二进制的浮点数速度更快,如果为十进制,计算后还要再转换。详细情况,建议LZ查一查intel的cpu中协处理器的指令集就会明白。 本帖最后由 cxmcxm 于 2011-01-03 20:13:28 编辑 数据表示的范围是不一样的.decimal是带固定精度和小数位数的数值数据类型。有效值范围为 - 10^38 +1 到 10^38 - 1float用于表示浮点数值数据的大致数值数据类型。取值范围为 -1.79E + 308 至 -2.23E - 308、0 以及 2.23E - 308 至 1.79E + 308可见,后者是不能被前者全部替代的. 因为数字太大了,用float解决一下,精度只是小问题 用float时,其形式为 float [ ( n ) ] 其中 n 为用于存储 float 数值尾数的位数,以科学记数法表示,因此可以确定精度和存储大小。如果指定了 n,则它必须是介于 1 和 53 之间的某个值。n 的默认值为 53。当 n 为53时,以8字节存储.当decimal为最大精度时,以17字节存储. 存在即是合理!float表示的数据范围大,如果 再小一些是real,再精度一下就是decimal,number了!当然也可用money,货币型! float的精度没有decimal大,而decimal能表示的数值范围没有float大。很多高精度的计算都还是需要decimal的 SQL批量添加记录的存储过程!谢谢! 合并表问题! 我的个人主页,采用的是免费的域名和空间,在任何地方都能正常浏览到,问题是如何能在百度、google中搜索到我的主页。 菜鸟复制发布订阅问题 触发器中如何得到UPDATE以前的字段值,是否通过INSERTED表? 请问一个基础的触发器怎么做啊 SQL SERVER的表有没有类似ACCESS的MEMO字段? 如何将两个select得到的结果合成一张表输出 请教sqlserver2000客户端通讯链接失败的古怪问题 Sql Server的事務處理問題 如何把四个表窜成一个表 在 WIn7 系统安装sql server 2005
--float用于一些近似计算,并且数据类型占用内存大小不同,存在就有它存在的必要性!
decimal是精确数,可以指定精度。decimal指定了精度之后就是定长的了。
因为用二进制表示,转为十进制时会有误差。
对x86处理器中的87处理器,计算二进制的浮点数速度更快,
如果为十进制,计算后还要再转换。详细情况,建议LZ查一查intel的cpu中协处理器的指令集就会明白。
有效值范围为 - 10^38 +1 到 10^38 - 1float用于表示浮点数值数据的大致数值数据类型。
取值范围为 -1.79E + 308 至 -2.23E - 308、0 以及 2.23E - 308 至 1.79E + 308可见,后者是不能被前者全部替代的.
其中 n 为用于存储 float 数值尾数的位数,以科学记数法表示,因此可以确定精度和存储大小。如果指定了 n,则它必须是介于 1 和 53 之间的某个值。n 的默认值为 53。
当 n 为53时,以8字节存储.当decimal为最大精度时,以17字节存储.
float表示的数据范围大,如果 再小一些是real,再精度一下就是decimal,number了!
当然也可用money,货币型!