double dNeg = -569.99;
Console.WriteLine(string.Format("{0:$#,##0.00;;zero}",dNeg));
Console.WriteLine(string.Format("{0:$#,##0.00;$#,###0.00;zero}", dVal));第一个输出为什么有负号,第二个就没有??

解决方案 »

  1.   

    写错了,改改
    double dNeg = -569.99; 
    Console.WriteLine(string.Format("{0:$#,##0.00;;zero}",dNeg)); 
    Console.WriteLine(string.Format("{0:$#,##0.00;$#,###0.00;zero}", dNeg)); 
      

  2.   

    {0:$#,##0.00;;zero}
    表示正数用 $#,##0.00格式化
    负数用默认的 
    0用zero{0:$#,##0.00;$#,###0.00;zero}
    表示正数用$#,##0.00格式化
    负数用$#,###0.00格式化
    0用zero以下摘自MSDN
    可以根据值为正、为负还是为零来为字符串应用不同的格式化。为产生这种行为,自定义格式字符串可以包含最多三个用分号分隔的部分: 一个部分:格式字符串应用于所有值。两个部分:第一部分应用于正值和零,第二部分应用于负值。如果要格式化的数字为负,但根据第二部分中的格式舍入后为零,则最终的零根据第一部分进行格式化。三个部分:第一部分应用于正值,第二部分应用于负值,第三部分应用于零。第二部分可能为空(分号间没有任何内容),在这种情况下,第一部分应用于所有非零值。如果要格式化的数字为非零值,但根据第一部分或第二部分中的格式舍入后为零,则最终的零根据第三部分进行格式化。