要求
用户可以选择小数值作为规则。例如0.5,或0.01,或0.33,或0.1。
金额例如为12.46,舍入规则为0.01。
我不确定我是否已正确解释。
任何答案都非常感谢。 Khankooouuu提前。
答案 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将是用户使用其输入的十进制值隐式请求的小数位数。
这就是你要找的东西?