我正在产生小数,例如:
0.8235294117647058823529411765
0.1764705882352941176470588235
我想将它们乘以10
然后围绕它们。如果点后的第二个数字小于5
,则将其设为0
。否则,请将其设为1
。对于上面的例子,那将是:
8
2
结果应放在int
。
答案 0 :(得分:5)
答案 1 :(得分:2)
如果您希望将decimal
保持为decimal dec = 0.8235294117647058823529411765m;
decimal rounded = Math.Round(dec * 10); // 8m
decimal roundedToOne = Math.Round(dec * 10, 1); // 8.2m
或将其保持为一定精度,则可以使用Math.Round()
。
decimal
仅供参考,int
定义为int
至int a = (int)(dec * 10); // 8
,因此您可以通过转换为decimal num = dec * 10;
int a = (int)num + (num % 0 < .5m ? 0 : 1); // 8
{{1}}
这可以与条件相结合来上下调整数字
{{1}}