我使用Math.Round(1.7346, 2, AwayFromZero)哪个应该给我1,74 - 但它实际上给了我1.73.
我知道是因为这个:
"由于将十进制值表示为浮点数或对浮点值执行算术运算可能导致精度损失,因此在某些情况下,Round(Double,Int32,MidpointRounding)方法可能看起来不会将中点值舍入为由mode参数指定.这在下面的示例中说明,其中2.135舍入到2.13而不是2.14.这是因为内部方法将值乘以10*位,并且在这种情况下乘法运算会受到精度损失的影响".
但是我应该使用哪种.NET方法来进行正确的舍入?