以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]四舍五入错误 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=139810) |
-- 作者:455631117 -- 发布时间:2019/8/22 9:17:00 -- [求助]四舍五入错误 代码如下: Dim a As Double = Math.Round(2.155, 2) 显示结果: 2.15 为什么显示结果不是2.16? |
-- 作者:有点蓝 -- 发布时间:2019/8/22 9:20:00 -- 正常,程序的四舍五入都这样,改改 Dim a As Double = Math.Round(2.155+0.00499, 2) Dim s As Double = Round2(2.155+0.00499, 2) Output.Show(a) Output.Show(s) |
-- 作者:455631117 -- 发布时间:2019/8/22 9:28:00 -- 以下是引用有点蓝在2019/8/22 9:20:00的发言:
正常,程序的四舍五入都这样,改改 Dim a As Double = Math.Round(2.155+0.00499, 2)
Dim s As Double = Round2(2.155+0.00499, 2)
Output.Show(a)
Output.Show(s) 那为什么3.155和12.155可以,2.155和10.155不行 |
-- 作者:有点蓝 -- 发布时间:2019/8/22 9:33:00 -- 这种叫:四舍六入五成双 |
-- 作者:455631117 -- 发布时间:2019/8/22 9:43:00 -- 以下是引用有点蓝在2019/8/22 9:33:00的发言:
这种叫:四舍六入五成双 1.为什么有的数值的四舍六入五成双正常,有的不正常; 2.下面的Round2是狐表提供的四舍五入,并没有五成双,为什么也不行; 3.保留小数是只看前一位小数,为什么我改变了整数部分,没有改变前一位小数的值,但是结果却不一样。 |
-- 作者:有点蓝 -- 发布时间:2019/8/22 9:46:00 -- 不同程序算法问题,没有那么多为什么。 |