将小数四舍五入到小数点后两位
Rounding decimal number upto two decimal places
我正在尝试将小数四舍五入到小数点后两位,效果很好。
我正在做如下:
Math.Round(Amount, 2)
因此,如果我的金额为 40000.4567
,我将得到 40000.46
,这正是我想要的。
现在的问题是我有像 40000.0000
这样的小数,当我四舍五入时,结果是 40000
,而我真正想要的是 40000.00
。所以 round 总是会忽略尾随的零。
为了解决这个问题,我可以选择将它转换为字符串并使用 format ,但我不想这样做,因为那样效率低下,我相信一定有一些方法可以做得更好。
我也试过
Decimal.Round(Amount, 2)
现在一种方法是检查数字是否包含任何小数部分并相应地使用 round 函数,但这确实是一种糟糕的方法。
由于与金额相关的明显原因,我也不能使用 truncate。
周围的路是什么?
它是正确舍入,但您未能理解值不是格式。 40000
和 40000.00
这两个值之间没有 差异 ,并且您会遇到与 3.1
类似的问题。
简单地使用格式将你有的任何数字输出到小数点后两位,例如:
Console.WriteLine(String.Format("{0:0.00}", value));
或:
Console.WriteLine(value.ToString("0.00"));
您混合了两件事 - 舍入和输出格式。为了以您想要的格式输出数字,您可以使用具有所需格式的函数 string.Format
,例如:
decimal number = 1234.567m;
string.Format("{0:#.00}", number);
您可以阅读更多关于 custom numeric format strings in MSDN
我认为您要查找的是显示两位小数,即使它们为零。您可以为此使用 string.Format(我也将它与 Round 结合使用):
Console.WriteLine(string.Format("{0:0.00}", Math.Round(Amount, 2));
您可以使用
四舍五入小数
decimal number=200.5555m;
number= Math.Round(number, 2);
string numString= string.Format("{0:0.00}", number);
我正在尝试将小数四舍五入到小数点后两位,效果很好。 我正在做如下:
Math.Round(Amount, 2)
因此,如果我的金额为 40000.4567
,我将得到 40000.46
,这正是我想要的。
现在的问题是我有像 40000.0000
这样的小数,当我四舍五入时,结果是 40000
,而我真正想要的是 40000.00
。所以 round 总是会忽略尾随的零。
为了解决这个问题,我可以选择将它转换为字符串并使用 format ,但我不想这样做,因为那样效率低下,我相信一定有一些方法可以做得更好。
我也试过
Decimal.Round(Amount, 2)
现在一种方法是检查数字是否包含任何小数部分并相应地使用 round 函数,但这确实是一种糟糕的方法。 由于与金额相关的明显原因,我也不能使用 truncate。
周围的路是什么?
它是正确舍入,但您未能理解值不是格式。 40000
和 40000.00
这两个值之间没有 差异 ,并且您会遇到与 3.1
类似的问题。
简单地使用格式将你有的任何数字输出到小数点后两位,例如:
Console.WriteLine(String.Format("{0:0.00}", value));
或:
Console.WriteLine(value.ToString("0.00"));
您混合了两件事 - 舍入和输出格式。为了以您想要的格式输出数字,您可以使用具有所需格式的函数 string.Format
,例如:
decimal number = 1234.567m;
string.Format("{0:#.00}", number);
您可以阅读更多关于 custom numeric format strings in MSDN
我认为您要查找的是显示两位小数,即使它们为零。您可以为此使用 string.Format(我也将它与 Round 结合使用):
Console.WriteLine(string.Format("{0:0.00}", Math.Round(Amount, 2));
您可以使用
四舍五入小数decimal number=200.5555m;
number= Math.Round(number, 2);
string numString= string.Format("{0:0.00}", number);