2012-07-03 14 views
2

我使用格式化功能(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”。现在,如果该值等于零,我想要显示“ - ”。如何在不使用if-else语句的情况下实现该输出,只需格式化函数?

编辑:

除了Pranay的文章在这里,我发现微软的一篇文章,它是在底部。 http://msdn.microsoft.com/en-us/library/0c899ak8.aspx

回答

7

为文章全文:Format Number To Display

使用

“;”部分分离

这允许根据数字符号来显示数目。正如你可以在下面的代码中看到的格式的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(); 

注:

在上面的例子中,你只是repalce 以 “ - ” 或CHAR你想要的。

尽管代码是在c#.net中,但是您可以在vb.net中实现它的所有功能后合并其更改。

+0

哈哈!从来没有想过会这么容易。在我的情况下,不会有负值,因此“##,## 0.00 ;; - ”就足够了。谢谢! – dpp

+0

@dpp - 是它很容易的,但大部分开发的不知道这种东西多数民众赞成在Ÿ我写了一篇关于这个aticle ... –

+0

我开了另外一个问题,我无法找到你的文章和MSDN的解决方案。 http://stackoverflow.com/questions/11305822/format-numbers-to-roman-numerals谢谢! – dpp