将pos和neg数舍入到最接近的10

时间:2016-02-10 12:28:33

标签: c# math converter rounding

我在舍入问题上遇到了一些麻烦。我有一个转换器,根据输入的值将图表比例更新为最接近的10。值可以是正数或负数。

我试图建立一个数学语句来舍入到最接近的10,但是数量非常小,它不起作用。 (5岁以下的数字)。

进来的值是double,但会显示在int中。看到我做错了什么的任何帮助都会很棒。

  public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
                return (int)((double)value >= 0 ? 
                        (Math.Round((double)value / 10, MidpointRounding.AwayFromZero) * 10) : 
                        (Math.Abs((Math.Round((double)value / 10, MidpointRounding.AwayFromZero) * 10)) * -1));
    } 

1 个答案:

答案 0 :(得分:3)

这个怎么样:

return value > 0 ? 
    Math.Ceiling(value / 10) * 10 : 
    Math.Ceiling(Math.Abs(value) / 10) * -10;