自定义四舍五入小数 c#
Custom Rounding decimal numbers c#
我希望像下面这样自定义四舍五入小数
100.0000 => 100.0
226.4223 => 226.43
115.9080 => 115.91
输入输出均为十进制数
我试过使用 Math.round,但这并没有给我想要的结果。
例如:Math.Round(226.4226, 2)
结果为 226.42
有什么想法吗?
尝试这样的事情:
static decimal Round(decimal v)
{
return Math.Ceiling(v * 100) / 100;
}
用法:
decimal a = 100.00000M, b = 226.4223M, c = 115.9080M;
Console.WriteLine(Round(a).ToString("#.0#"));
Console.WriteLine(Round(b).ToString("#.0#"));
Console.WriteLine(Round(c).ToString("#.0#"));
reader 的练习:使此方法四舍五入到小数点后的任意小数位数(现在始终是小数点后 2 位)。
首先 226.4223 不应该四舍五入到 226.43
其次,如果你想试试这个:
double f = 1234.56789 ;
Console.WriteLine ( "f: {0:#,###.00}", f );
它将打印 "f: 1,234.56"
如果有,# 将打印一个数字。 0 将打印最多该数量的数字。例如,如果###.## 是 0.5,它将打印 0.5 而 000.00 将打印 0.50
我希望像下面这样自定义四舍五入小数
100.0000 => 100.0
226.4223 => 226.43
115.9080 => 115.91
输入输出均为十进制数
我试过使用 Math.round,但这并没有给我想要的结果。
例如:Math.Round(226.4226, 2)
结果为 226.42
有什么想法吗?
尝试这样的事情:
static decimal Round(decimal v)
{
return Math.Ceiling(v * 100) / 100;
}
用法:
decimal a = 100.00000M, b = 226.4223M, c = 115.9080M;
Console.WriteLine(Round(a).ToString("#.0#"));
Console.WriteLine(Round(b).ToString("#.0#"));
Console.WriteLine(Round(c).ToString("#.0#"));
reader 的练习:使此方法四舍五入到小数点后的任意小数位数(现在始终是小数点后 2 位)。
首先 226.4223 不应该四舍五入到 226.43
其次,如果你想试试这个:
double f = 1234.56789 ;
Console.WriteLine ( "f: {0:#,###.00}", f );
它将打印 "f: 1,234.56" 如果有,# 将打印一个数字。 0 将打印最多该数量的数字。例如,如果###.## 是 0.5,它将打印 0.5 而 000.00 将打印 0.50