为什么我在数据窗口中输入0.575而用变量把它取出时变成0.57499999996,是为什么?
谢谢!
[解决办法]
你的数据类型不要用float(这个类型不准确).
建议用number或decimal型.
[解决办法]
decimal是这样的吧,需要round()函数指定下小数位
[解决办法]
[解决办法]
[解决办法]
数据库使用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}就可以了;