我需要将我的值2.8634
转换为2.8
。我尝试了以下内容,
var no = Math.Round(2.8634,2,MidpointRounding.AwayFromZero)
我得到了2.87
。
建议我如何转换。
谢谢
答案 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;