2

我正在使用 Format 函数 ( http://msdn.microsoft.com/en-us/library/59bz1f0h%28v=vs.90%29.aspx ) 来格式化我的输出。目前我使用这种格式字符串:

 TestStr1 = Format(5459.4, "##,##0.00")
 TestStr2 = Format(0.4, "##,##0.00")
 TestStr3 = Format(0.0, "##,##0.00")

上面的代码将分别返回“5,459.40”、“0.4”和“0.00”。现在,如果该值等于 0,我想改为显示“-”。如何在不使用 if-else 语句而仅使用 Format 函数的情况下实现该输出?

编辑:

除了 Pranay 的文章,我在这里找到了 Microsoft 的一篇文章,它位于底部。http://msdn.microsoft.com/en-us/library/0c899ak8.aspx

4

1 回答 1

7

全文 :要显示的格式编号

利用

“;” 部分分隔符

这允许根据数字符号显示数字。正如您在下面的代码中看到的那样,fmt 变量是我将在我的号码之前应用的格式;用于正数,第二种格式用于负数,最后一种格式用于零值。基本上它的“正;负;零”格式。您可以在此代码的输出中看到它的作用。

例子 :

double posValue = 1234;
double negValue = -1234; 
double zeroValue = 0;

string fmt = "+##;-##;**Zero**";

Console.WriteLine("value is positive : " + posValue.ToString(fmt));    
Console.WriteLine();

Console.WriteLine("value is negative : " +negValue.ToString(fmt));    
Console.WriteLine();

Console.WriteLine("value is Zero : " + zeroValue.ToString(fmt));
Console.WriteLine();

笔记:

在上面的示例中,您只需用“-”或您想要的字符替换零。

尽管代码在 c#.net 中,但在其ToString函数格式发生变化后,您可以在 vb.net 中实现它。

于 2012-07-03T06:22:59.607 回答