如果数字不为零,我想将十进制数字舍入为上限值。 我想将第6位数舍入到上限值。
Sample Value = 1.0003331
Expected Value = 1.000334
答案 0 :(得分:1)
听起来像你想要的那样:
decimal scale = 1000000m;
decimal rounded = decimal.Ceiling(x * scale) / scale;
(比例可能会减一:)
显然如果你试图用它处理非常大的数字会导致问题 - 它们可能会溢出。
我想想你也可以通过添加一定金额然后使用decimal.Round
来做同样的事情,但是如果没有MidpointRounding
的{{}},那会有点尴尬{1}}。
答案 1 :(得分:0)
您可以尝试这样的事情:
decimal.Round(Value + 0.00000049m, 6, MidpointRounding.AwayFromZero)
MidpointRounding.AwayFromZero确保当一个数字位于另外两个数字之间时,它会向最接近零的数字四舍五入。