,每隔一次计算5次向下/向上

问题描述 投票:1回答:1
Label4.Text = CDec(TextBox1.Text) * 115
Label5.Text = CInt(Label4.Text)

我希望Label4显示确切的数字和Label5来显示没有小数的数字并向上舍入。

如果我在文本框中键入11,1,Label4 = 1276,5和Label5 = 1276(为什么向下舍入?)。

如果我输入11,3,Label4 = 1299,5和Label5 = 1300(完美)。

11,5向下舍入; 11,7被四舍五入......等等。

我怎么能这样做,5总是四舍五入? (我正在进行基于金钱的计算。)

vb.net math decimal currency rounding
1个回答
2
投票

如果您使用的是VB.NET,可以使用Math.Round

Label5.Text = = Math.Round(CDec(Label4.Text), MidpointRounding.AwayFromZero)

请注意,MidpointRounding.AwayFromZero是必要的,因为Round的默认行为是将X.5舍入到最接近的偶数(例如1.5轮到2.0,但2.5轮到2.0)。


作为旁注,一个小的优化是将第一个表达式的结果存储在十进制变量中并重复使用它而不是再次解析Label4.Text - 但我不希望这会减损实际的答案。

© www.soinside.com 2019 - 2024. All rights reserved.