社区
MS-SQL Server
帖子详情
这个算不算SQL的一个BUG?
txlicenhe
2003-12-01 07:02:36
SQL2000:
declare @a float,@b float,@c float
select @a = 1234.2,@b = 12345.2,@c = 12345678.2
select @a,@b,@c
1234.2 12345.200000000001 12345678.199999999
(所影响的行数为 1 行)
...全文
28
10
打赏
收藏
这个算不算SQL的一个BUG?
SQL2000: declare @a float,@b float,@c float select @a = 1234.2,@b = 12345.2,@c = 12345678.2 select @a,@b,@c 1234.2 12345.200000000001 12345678.199999999 (所影响的行数为 1 行)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
txlicenhe
2003-12-04
打赏
举报
回复
当然是看过帮助的,只是当时不明白为什么"已经赋了值还要取近似值"
多亏蒋老师指点。
pengdali
2003-12-04
打赏
举报
回复
哦,呵呵。看到了对话记录。
pengdali
2003-12-04
打赏
举报
回复
这怎么是bug?
F1呀
pengdali
2003-12-04
打赏
举报
回复
float 和 real
用于表示浮点数字数据的近似数字数据类型。浮点数据为近似值;并非数据类型范围内的所有数据都能精确地表示。
txlicenhe
2003-12-04
打赏
举报
回复
j9988 说:
我认为正常,因为浮点数本身就是一个不精确数。
j9988 说:
不是BUG
马可 说:
哦
j9988 说:
是浮点数本身的机理。
j9988 说:
我找找资料,好象有这方面的说法。
马可 说:
float 和 real
用于表示浮点数字数据的近似数字数据类型。浮点数据为近似值;并非数据类型范围内的所有数据都能精确地表示。
马可 说:
联机帮助
j9988 说:
近似值!对,只是个近似值,不可能绝对准确。
马可 说:
已经赋了值还要取近似值,是比较奇怪
j9988 说:
这要从它的存储机制来理解,好象C上有介绍。反正MS的东东大都跟C写的DLL有关。
马可 说:
还大有来头啊
j9988 说:
并非是要取近似值。而是存进地址后,再取出来就不那么准确了。
j9988 说:
变形了。
马可 说:
有点懂了,谢谢
j9988 说:
我的C书上是这样写的:
j9988 说:
浮点寄存器通常不能精确地存贮浮点数,从而产生误差,在运算和比较中要特别注意。
j9988 说:
跟CPU都有关:浮点寄存器
j9988 说:
“不能精确地存贮”所以一存,一取之间,就出错了。
xiaoliaoyun
2003-12-01
打赏
举报
回复
我也遇到过这个问题,float是近似数值型,它所存储的数据和实际数据之间可能存在细小的差别。所以要求很高的精度的话,我一般用decimal。
不知道float保存的时候是怎么保存的....
zjcxc
元老
2003-12-01
打赏
举报
回复
怪
lvltt
2003-12-01
打赏
举报
回复
?
txlicenhe
2003-12-01
打赏
举报
回复
/*更怪的*/
declare @a float,@b float,@c float
select @a = 12345.2,@b = 123456.2,@c = 12345678.2
select @a,@b,@c
/*
12345.200000000001 123456.2 (这个怎么又对呢?) 12345678.199999999
(所影响的行数为 1 行)
*/
smallroad
2003-12-01
打赏
举报
回复
关注
慕逸留言板1.0
6.由于用到计数器(counter.txt),如果是liunx主机,请将该文件夹属性设置为777(好象是这个代码,不过 我也记不太清了,有没有晓得的朋友知会一声?);如果是windows,请将权限设置为everyone的完全控制...
EasyUI项目
由于水平有限,项目
bug
在所难免,欢迎指正。 博文参考地址:http://blog.csdn.net/itmyhome1990/article/details/37502601 使用方法: 1、首先你的电脑得安装有my
sql
、myeclipse 2、执行init.
sql
里的语句,顺序执行即可...
如何防止
sql
注入?防止
sql
注入方法介绍
SQL
注入是较为普遍的互联网攻击方法,它并不是通过电脑操作系统的
BUG
来完成攻击,而是对于程序编写时的疏漏,利用
SQL
语句,达到无帐号登录,乃至改动数据库的目的。
SQL
注入产生的原因便是:没经查验或是未充分检验...
SQL
注入攻击常见方式及测试方法
了解如何进行
SQL
注入,可以帮助我们测试登录、发布等模块的
SQL
攻击漏洞,至于如何预防
SQL
注入,按理说应该是开发该了解的事情~但是作为
一个
棒棒的测试,搞清楚原理是不是能让我们更加透彻地理解
bug
的产生原因呢~好啦...
bug
统计分析续(一)基于
SQL
的
Bug
统计方法
bug
统计分析 基于
SQL
的
Bug
统计方法
MS-SQL Server
34,590
社区成员
254,589
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章