如何将c十进制小数舍入到用户给出的最接近的小数值?

时间:2011-08-16 21:51:00

标签: c# asp.net

要求

用户可以选择小数值作为规则。例如0.5,或0.01,或0.33,或0.1。

金额例如为12.46,舍入规则为0.01。

我不确定我是否已正确解释。

任何答案都非常感谢。 Khankooouuu提前。

2 个答案:

答案 0 :(得分:5)

public class Test
{
    static double round(double what, double to)
    {
        return to * Math.Round(what/to);
    }

    public static void Main()
    {
        Console.WriteLine(round(3.5, 1));
        Console.WriteLine(round(3.44, 1));
        Console.WriteLine(round(3.44, 0.1));
        Console.WriteLine(round(1.68, 0.33));
        Console.WriteLine(round(1.59, 0.33));
    }
}

输出

  

4
  3
  3.4
  1.65
  1.65

答案 1 :(得分:0)

您可以使用Decimal.Round()方法对十进制进行舍入,使用十进制的重载和一个小数位数的整数。请参阅Here

至于要查看用户在输入十进制值时想要使用多少小数位的部分,可以将其转换为字符串并计算小数点后的字符:

decimal UserDecimal;
string UserString = UserDecimal.ToString();
int DecimalPlaces = UserString.SubString(UserString.IndexOf(".")).Length;

最后,DecimalPlaces将是用户使用其输入的十进制值隐式请求的小数位数。

这就是你要找的东西?