以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  保留一位小数,结果不理解  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=151145)

--  作者:foxyuan
--  发布时间:2020/6/16 14:00:00
--  保留一位小数,结果不理解
Dim i As Double = 4980
Dim i1 As Double = 0.16
Output.Show(Math.Ceiling(i*i1*10)/10)

为什么是796.9,不是796.8呢?

--  作者:foxyuan
--  发布时间:2020/6/16 14:04:00
--  
如果做到I*I1如果刚好一位小数,就保留原值;如果超过1位小数,就去掉后面的进一位?如4980*0.16=796.8,就是796.8;如果是4927*0.16=788.32,就保留788.4?
--  作者:有点蓝
--  发布时间:2020/6/16 14:19:00
--  
计算机精度问题,改为Decimal 即可

Dim i As Decimal = 4980
Dim i1 As Decimal = 0.16
Output.Show(Math.Ceiling(i*i1*10)/10)

--  作者:WELOVEFOX
--  发布时间:2020/6/16 14:31:00
--  
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=141578&skin=0

改高精度

--  作者:WELOVEFOX
--  发布时间:2020/6/16 14:32:00
--  
图片点击可在新窗口打开查看
[此贴子已经被作者于2020/6/16 14:33:51编辑过]

--  作者:foxyuan
--  发布时间:2020/6/16 14:57:00
--  
谢谢各位,把列的数据类型改为高精度可以了