如何将小数位数(以c为单位)四舍五入到用户给定的最接近的分数值

本文关键字:用户 最接近 四舍五入 为单位 小数 | 更新日期: 2023-09-27 18:05:53

要求

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

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

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

非常感谢您的回答。Khankoouuu提前。

如何将小数位数(以c为单位)四舍五入到用户给定的最接近的分数值

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

您可以使用decimal对小数进行四舍五入。Round((方法,重载Decimal和一个表示小数位数的整数。请参见此处。

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

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

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

这就是你要找的??