如何在VB.NET中舍入到任意数量的小数(即从3.32到3.30)?

如何在VB.NET中舍入到任意数量的小数(即从3.32到3.30)?,vb.net,rounding,Vb.net,Rounding,如果我想从3.32到3.30,从3.38到3.40,我该怎么做 我试过math.round,但我做不到。您可能正在VB.NET中寻找 将值舍入到最接近的整数或指定的整数位数 小数位数 试着这样做: Math.Round(3.32, 1) 或者这个: Math.Round(3.32, 1, MidpointRounding.AwayFromZero) Math.Round(3.38, 1, MidpointRounding.AwayFromZero) 您可以在Math.Round例程重载中指

如果我想从3.32到3.30,从3.38到3.40,我该怎么做


我试过math.round,但我做不到。

您可能正在VB.NET中寻找

将值舍入到最接近的整数或指定的整数位数 小数位数

试着这样做:

Math.Round(3.32, 1)
或者这个:

Math.Round(3.32, 1, MidpointRounding.AwayFromZero) 
Math.Round(3.38, 1, MidpointRounding.AwayFromZero)

您可以在Math.Round例程重载中指定有效位数。我习惯使用C,但VB.NET语法应该是:

Math.Round(3.44, 1)
有关更多信息,请参见。

类似于以下内容:

Math.Round(3.32, 1, MidpointRounding.AwayFromZero)  ' Returns 3.3
Math.Round(3.38, 1, MidpointRounding.AwayFromZero)  ' Returns 3.4

第一个参数是要舍入的数字。第二个参数指定小数点后要舍入的位数。第三个参数指定要使用标准远离零舍入,而不是银行家舍入。

要获得两位正确的十进制值,请使用以下方法:

FormatNumber((Math.Round(3.32, 1, MidpointRounding.AwayFromZero)), 2) 
' Returns 3.30

FormatNumber((Math.Round(3.38, 1, MidpointRounding.AwayFromZero)), 2) 
' Returns 3.40

你试过这个了吗?你得倒立起来才能召集大家。是的,使用Math.Round。@HansPassant:-我认为OP没有指定他想要的有效位数,或者可能是中点rounding.AwayFromZero。但这只是一个猜测