2012-05-29 108 views
0
var amount="0"; 
@String.Format("{0:0.00}", amount) 

回报"0"的String.Format问题

虽然我期待它返回

"0.00" 
+1

我认为这里的问题是,var已经明确键入数量作为字符串,摆脱引号。 –

+0

您正在打印字符串“0”。它的表示是“0”,尝试打印十进制数= 0; –

+0

为什么这个问题得到了投票?这是一个简单的编程错误。乏味的。 –

回答

10

格式化字符串只返回字符串本身,你必须格式化号码来获得它格式化为一个数:

var amount = 0; 

带有隐式类型的变量被赋值为整数,因此它不会有小数部分。您可能需要指定类型:

double amount = 0; 

或者使用双重价值:

var amount = 0.0; 
0

尝试:

String.Format("{0:#.##}", amount) 

OR

String.Format("{0:N2}", amount) 

scratch这 - Guffa的答案是正确的......

0

试试这个

.ToString("N2") 

它将使用的CultureInfo格式化数字。这意味着根据所使用的CultureInfo,您的千位分隔符可能会有所不同。如果需要,您也可以传递所需的CultureInfo。