zoukankan      html  css  js  c++  java
  • float 比较, 这是一个坑

    为了方便随机关键产品数据,做了一个随机值列的方案,列字段类型设置为float。

    在测试的两个随机值的时候, 故意设置了几个随机值相同保存到数据库表中, 这样问题就出来了。 详细如下: 当进行小于比较的时候,坑出现了

        select top 5 PartNo, [rand]  from PartNow where [rand] < 0.850106894857748 order by [rand] desc
    
    ![查询结果](https://f.cloud.github.com/assets/1181144/1445889/71649f6e-422c-11e3-81a4-0d9d2f1cac15.jpg)
    
    这个查询结果真是不忍直视啊, 接着测试了大于和等于 ,大于比较一切正常,但是等于比较的结果也不忍直视啊, 完全没有出现任务数据。
    
        select top 5 PartNo,  [rand]  from Seo_PartNoWjw where [rand] = 0.850106894857748 order by [rand] desc
    

    查询结果

    看到这样的结果, 我和我的小伙伴都惊呆了。

    索性项目中不需要比较相等,而表面上两个float的数字相同的随机值概率小之又小。

    当需要遇到相等比较的随机值情况时,请珍惜生命,远离float。

    写于 2013-12-21

  • 相关阅读:
    maven工程的目录结构
    集合的区别
    名词解析
    1.(字符串)-判断字符串是否是子集字符串
    1.(字符串)-判断两字符串是否相等
    python max函数技巧
    1.(字符串)-子字符串位置查找
    numpy线性代数np.linalg
    Python图像库PIL 使用
    pyhthon-chr
  • 原文地址:https://www.cnblogs.com/hduwbf/p/6201986.html
Copyright © 2011-2022 走看看