float有精度问题,为什么还要存在

proud 2011-01-03 08:18:16
如题,直接用decimal代替不就好了吗,存在有什么用呢
...全文
355 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
stwd250 2011-01-05
  • 打赏
  • 举报
回复
float的精度没有decimal大,而decimal能表示的数值范围没有float大。很多高精度的计算都还是需要decimal的
luoyefeng1022 2011-01-05
  • 打赏
  • 举报
回复
仁者见仁智者见智的问题!但最主要的是在精度上!!
feilniu 2011-01-04
  • 打赏
  • 举报
回复
精确定点小数用以表示货币、比例等范围不大但精确性要求高的数值,在日常信息系统中用的较多。

浮点小数可以表示更大的范围,主要用以进行科学计算。
abuying 2011-01-04
  • 打赏
  • 举报
回复
存在即是合理!
float表示的数据范围大,如果 再小一些是real,再精度一下就是decimal,number了!
当然也可用money,货币型!
ycg_893 2011-01-03
  • 打赏
  • 举报
回复
你哪天搞一个导弹拦截系统或精确打击系统时,用的坐标应该不可能精确类型decimal,因为这种导弹再精确也不可能一点误差也没有。一些GPS定位系统、地理等也会使用这种类型
飘零一叶 2011-01-03
  • 打赏
  • 举报
回复
float是浮点数,能不指定小数位,精度很高。
decimal是精确数,可以指定精度。decimal指定了精度之后就是定长的了。

hyde100 2011-01-03
  • 打赏
  • 举报
回复
我等做信息系统的估计很少接触到float的使用,但是存在肯定是有道理的,估计更高级计算的时候能用到吧
Rotel-刘志东 2011-01-03
  • 打赏
  • 举报
回复
会存在误差是很正常的一件事呀!
AcHerat 元老 2011-01-03
  • 打赏
  • 举报
回复

--float用于一些近似计算,并且数据类型占用内存大小不同,存在就有它存在的必要性!
dawugui 2011-01-03
  • 打赏
  • 举报
回复
[Quote=引用楼主 proud 的回复:]
如题,直接用decimal代替不就好了吗,存在有什么用呢
[/Quote]
科学计算有误差存在,为什么还要存在科学计算?
-晴天 2011-01-03
  • 打赏
  • 举报
回复
用float时,其形式为 float [ ( n ) ]
其中 n 为用于存储 float 数值尾数的位数,以科学记数法表示,因此可以确定精度和存储大小。如果指定了 n,则它必须是介于 1 和 53 之间的某个值。n 的默认值为 53。
当 n 为53时,以8字节存储.

当decimal为最大精度时,以17字节存储.
zheninchangjiang 2011-01-03
  • 打赏
  • 举报
回复
因为数字太大了,用float解决一下,精度只是小问题
-晴天 2011-01-03
  • 打赏
  • 举报
回复
数据表示的范围是不一样的.

decimal是带固定精度和小数位数的数值数据类型。
有效值范围为 - 10^38 +1 到 10^38 - 1

float用于表示浮点数值数据的大致数值数据类型。
取值范围为 -1.79E + 308 至 -2.23E - 308、0 以及 2.23E - 308 至 1.79E + 308

可见,后者是不能被前者全部替代的.
cxmcxm 2011-01-03
  • 打赏
  • 举报
回复
关键的一点,用float能表示更大的数
cxmcxm 2011-01-03
  • 打赏
  • 举报
回复
float为二进制,decimal为十进制
因为用二进制表示,转为十进制时会有误差。
对x86处理器中的87处理器,计算二进制的浮点数速度更快,
如果为十进制,计算后还要再转换。详细情况,建议LZ查一查intel的cpu中协处理器的指令集就会明白。

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧