如何在C#中将Double
格式化为String
,使其只有两个小数位?
如果我使用String.Format("{0:0.00}%", myDoubleValue)
,然后对数字进行四舍五入,我想要一个简单的截断而不进行任何四舍五入。我还希望到String
的转换是文化敏感的。
发布于 2010-03-16 19:44:02
我使用以下代码:
double x = Math.Truncate(myDoubleValue * 100) / 100;
例如:
如果数字是50.947563,并且您使用以下命令,则会发生以下情况:
- Math.Truncate(50.947563 * 100) / 100;
- Math.Truncate(5094.7563) / 100;
- 5094 / 100
- 50.94
这就是你的答案被截断了,现在要格式化字符串,只需执行以下操作:
string s = string.Format("{0:N2}%", x); // No fear of rounding and takes the default number format
发布于 2010-03-16 19:48:01
我建议您先截断,然后格式化:
double a = 123.4567;
double aTruncated = Math.Truncate(a * 100) / 100;
CultureInfo ci = new CultureInfo("de-DE");
string s = string.Format(ci, "{0:0.00}%", aTruncated);
对于2位数截断,使用常量100;在小数点后使用1后跟任意数量的零。使用调整格式结果所需的区域性名称。
发布于 2015-03-04 22:30:51
我使用price.ToString("0.00")
来获取前导0
https://stackoverflow.com/questions/2453951
复制相似问题