格式化功能,如果数字为零,则显示自定义字符

dpp*_*dpp 2 c# vb.net asp.net formatting

我正在使用格式函数(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")
Run Code Online (Sandbox Code Playgroud)

上面的代码将分别返回"5,459.40","0.4"和"0.00".现在,如果该值等于零,我想显示" - ".如何在不使用if-else语句的情况下实现输出,只需格式化函数?

编辑:

除了Pranay的文章,我发现了一篇来自微软的文章,它位于底部.http://msdn.microsoft.com/en-us/library/0c899ak8.aspx

Pra*_*ana 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();
Run Code Online (Sandbox Code Playgroud)

注意:

在上面的示例中,您只需使用" - "或您想要的字符重新生成Zero.

虽然代码在c#.net中但是在你的所有ToString函数格式改变之后你可以在vb.net中实现它.