以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 为什么输出的结果不一样? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=193435) |
-- 作者:YUNSEL -- 发布时间:2024/9/13 13:24:00 -- 为什么输出的结果不一样? Output.Show(4.5 * 7.1323) 输出结果是:32.09535 Output.Show(round2(32.09535, 4)) 输出结果是:32.0954 Output.Show(round2(4.5 * 7.1323, 4)) 输出结果是:32.0953 第二行与第三行写法为何输出结果不一样?
|
-- 作者:有点蓝 -- 发布时间:2024/9/13 13:31:00 -- 我也不懂。不过如果对结果准确度要求高的,建议还是使用变量的方式 Dim d As Decimal = 4.5 * 7.1323 Output.Show(d) Output.Show(round2(d, 4)) |
-- 作者:puma -- 发布时间:2024/9/13 14:09:00 -- 7.1323 在内存里,是一个近似的数? |
-- 作者:有点蓝 -- 发布时间:2024/9/13 14:14:00 -- 计算内部的原理不清楚,也许是精度的问题,类似:http://www.foxtable.com/webhelp/topics/1829.htm |
-- 作者:YUNSEL -- 发布时间:2024/9/13 15:26:00 -- 我试了,要这样处理: dim s1 as Decimal = 4.5 dim s2 as Decimal = 7.1323 Output.Show(round2(s1* s2, 4)) 输出结果是:32.0954
|