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

时间:2014-11-19 15:55:11

标签: vb.net math decimal currency rounding

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总是四舍五入? (我正在进行基于金钱的计算。)

1 个答案:

答案 0 :(得分: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轮 down 到2.0)。


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