C#:如何将浮点值向上舍入到最接近的浮点值?

时间:2012-06-21 09:57:53

标签: c# winforms

我有一个datagridview列'total',其中我正在对输入的各个项目的费率进行总和。有时候我会得到30.19卢比或100.59卢比的额外费用,我想要30.19到30.50& 100.59到101.所以任何人都可以帮助我......?

我试过了

                float val = float.Parse(value);
                total = val;

                ekunrakam = ekunrakam + total;
                Math.Round(ekunrakam + 0.5,2);

但它不起作用..

提前感谢..

3 个答案:

答案 0 :(得分:2)

通常使用货币,在您没有专用货币类型的情况下,您使用存在,最高或美分的最小货币单位或您拥有的货币。

此外,不要使用浮动物来赚钱,否则舍入错误会让你失望。 这些民间建议十进制。

What is the best data type to use for money in c#?

大多数国家都有关于如何汇总部分货币数量的官方标准,有时需要法律规定,但它们通常是银行家四舍五入的变体。幸运的是,它是Decimal.Round的默认行为。

http://msdn.microsoft.com/en-us/library/system.decimal.round%28v=vs.71%29.aspx

答案 1 :(得分:1)

你想要Math.Round(Somefloat + 0.5,2)才能胜任。

答案 2 :(得分:0)

如果你想要舍入到最接近的整数,比如100.59到101,我会告诉你只需将你的float变量设置为int。但是,你为什么要围绕30.50?四舍五入的具体规则是什么?