我在舍入问题上遇到了一些麻烦。我有一个转换器,根据输入的值将图表比例更新为最接近的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));
}
答案 0 :(得分:3)
这个怎么样:
return value > 0 ?
Math.Ceiling(value / 10) * 10 :
Math.Ceiling(Math.Abs(value) / 10) * -10;