以文本方式查看主题

-  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)
Dim s As Double = Round2(2.155, 2)
Output.Show(a)
Output.Show(s)

显示结果:

2.15
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
--  
不同程序算法问题,没有那么多为什么。