C# .NET:十进制到四舍五入字符串
如果我有一个C# .NET:十进制到四舍五入字符串,c#,.net,math,rounding,C#,.net,Math,Rounding,如果我有一个十进制数,如何得到一个带两位小数的字符串版本?这不起作用: Math.Round(myDecimal, 2).ToString("{0.00}"); 不要使用花括号,它们用于使用string.Format将格式化值嵌入较长的字符串中。使用以下命令: myDecimal.ToString("0.00"); 也许我错了,但我试过myDecimal.ToString()成功了。假设myDecimal是一个System.Decimal,然后Math.Round(myDecimal,2.T
十进制数
,如何得到一个带两位小数的字符串版本?这不起作用:
Math.Round(myDecimal, 2).ToString("{0.00}");
不要使用花括号,它们用于使用
string.Format
将格式化值嵌入较长的字符串中。使用以下命令:
myDecimal.ToString("0.00");
也许我错了,但我试过
myDecimal.ToString()代码>成功了。假设myDecimal
是一个System.Decimal
,然后Math.Round(myDecimal,2.ToString()
将显示精度的两个十进制数字,如您所需,不带任何格式字符串(除非您的数字的绝对值大于10^27-1)。这是因为decimal
数据类型保留了数字的全部精度。也就是说,1m
、1.0m
和1.00m
的存储方式和显示方式都不同
请注意,float
或double
的情况并非如此1f
、1.0f
和1.00f
的存储和显示方式与1d
、1.0d
和1.00d
相同
由于格式字符串必须在运行时进行解析,因此在大多数情况下,我可能会对类似这样的代码忽略它。请注意,格式字符串“{0.00}”
对string.format
也不起作用;您必须在那里使用“{0:0.00}”
。+1:与float
和double
不同,decimal
数据类型将保留精度的位数,因此Math.Round(myDecimal,2.ToString()代码>应该可以正常工作。不需要格式字符串。