如何在不舍入

时间:2017-01-06 07:31:16

标签: c#

我需要将我的值2.8634转换为2.8。我尝试了以下内容,

var no = Math.Round(2.8634,2,MidpointRounding.AwayFromZero)

我得到了2.87

建议我如何转换。

谢谢

3 个答案:

答案 0 :(得分:4)

这可能会为你做到这一点

decimal dsd = 2.8634m;
var no = Math.Truncate(dsd * 10) / 10;

Math.Truncate计算指定十进制数的整数部分。该数字四舍五入到最接近零的整数。

您还可以查看Math.Floor, Math.Ceiling, Math.Truncate, Math.Round之间的区别并获得惊人的解释。

答案 1 :(得分:0)

使用这个。希望这对你有用。

var no = Math.Round(2.8634,1,MidpointRounding.AwayFromZero)

答案 2 :(得分:0)

与调用Math方法相比,它有点神秘(但效率更高),但您可以简单地将值乘以10,转换为整数(有效截断小数部分),然后除以10.0(或10d / 10f,只是为了确保我们不会得到整数除法)来取回你所追求的值。即:

float val = 2.8634;
val = ((int)(val * 10)) / 10.0;