使用货币数据类型,当您想要更精确的数字值舍入。 但是,请注意使用货币数据类型不会修复所有舍入的问题。
下面的代码示例显示一种替代方法,通过将 mpay 变量的数字内容转换为字符串。
然后,VAL() 函数回数值数据类型使用将字符串 ROUND() 功能由。
clear
mrate = 86.173125
mhours = 24.0000
mpay = mhours * mrate
? mpay
test=STR(mpay,LEN(STR(mpay)),LEN(STR(mpay)))
? ROUND(mpay, 2)
? ROUND(VAL(test),2)
代码首先返回值的 mpay。
然后,将显示不正确的圆角的价值后正确圆形的价值。
经常 ROUND() 函数的行为差异与精度的跌幅正 Visual FoxPro 执行几个数字的计算,
例如正确的结果出现 2068.1550000000, 将 mpay 变量的值放置到 ROUND() 函数直接。
在命令窗口中键入以下内容:
? ROUND(2068.1550000000,2)
正确的值显示。