将正数和负数四舍五入到最接近的 10
Rounding pos and neg numbers to the nearest 10
我在四舍五入问题上遇到了一些麻烦。我有一个转换器可以根据输入的值将图表比例更新为最接近的 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));
}
这个怎么样:
return value > 0 ?
Math.Ceiling(value / 10) * 10 :
Math.Ceiling(Math.Abs(value) / 10) * -10;
我在四舍五入问题上遇到了一些麻烦。我有一个转换器可以根据输入的值将图表比例更新为最接近的 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));
}
这个怎么样:
return value > 0 ?
Math.Ceiling(value / 10) * 10 :
Math.Ceiling(Math.Abs(value) / 10) * -10;