当前位置: 代码迷 >> PB >> 为什么小弟我在数据窗口中输入0.575而用变量把它取出时变成0.57499999996,是为什么
  详细解决方案

为什么小弟我在数据窗口中输入0.575而用变量把它取出时变成0.57499999996,是为什么

热度:64   发布时间:2016-04-29 10:08:51.0
为什么我在数据窗口中输入0.575而用变量把它取出时变成0.57499999996,是为什么?
谢谢!

------解决方案--------------------
你的数据类型不要用float(这个类型不准确).
建议用number或decimal型.
------解决方案--------------------
decimal是这样的吧,需要round()函数指定下小数位
------解决方案--------------------
探讨
我用的是decimal

------解决方案--------------------
探讨
数据窗口中输入的是0.575
用变量取出round(变量,2)却变成0.57 应该是0.58
注:变量和字段类型都是decimal

------解决方案--------------------
数据库使用accsee会出现这样的情况,具体原因不明
------解决方案--------------------
在数据窗口格式里选0.000试试
------解决方案--------------------
哎,PB这个问题不知道啥时候能解决。老问题了。6.5就有,9.0还是这样,现在11.5不知道有没有解决这个问题。我都定义成dec{6}
------解决方案--------------------
输入输出都用mask,数据类型声明可用 dec{小数位数}
------解决方案--------------------
//1 这样没问题
dec{3} ldec
ldec=dw_1.getitemnumber(1,'dectest')
if ldec=0.575 then
messagebox('',ldec)
end if

//2 这样和lz的情况相同
dec ldec
ldec=dw_1.getitemnumber(1,'dectest')
if ldec=0.575 then
messagebox('',ldec)
end if
------解决方案--------------------
以前碰到过这种情况,可想去解决时,又没出现这种事情,不好判断。
------解决方案--------------------
#12楼的朋友已经说明白了,decimal表示的时候最好指定精度,一般情况下使用dec{5}就可以了;