如何在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
复制相似问题