字符串格式表达式,仅当有小数(.net)时才显示带2位小数的货币

字符串格式表达式,仅当有小数(.net)时才显示带2位小数的货币,.net,string,formatting,.net,String,Formatting,Silverlight 4/C#:我有一个标签,显示一个以线程区域性的货币(小数点后两位)格式的数字,例如 25显示为$25.00,25.01显示为$25.01 我用“StringFormat=C2”来表示这个。我的问题是。。。如果有小数点,我只想显示小数点后的2位。e、 g 25应显示为$25,25.01应显示为$25.01 对于一个正常的数字,我会使用#-例如#####,如果小数不存在的话,它会优先于小数,但是我不会得到货币符号。C2.##不起作用 有什么建议吗?(不可选择硬编码货币符号)十

Silverlight 4/C#:我有一个标签,显示一个以线程区域性的货币(小数点后两位)格式的数字,例如

25显示为$25.00,25.01显示为$25.01

我用“StringFormat=C2”来表示这个。我的问题是。。。如果有小数点,我只想显示小数点后的2位。e、 g

25应显示为$25,25.01应显示为$25.01

对于一个正常的数字,我会使用#-例如#####,如果小数不存在的话,它会优先于小数,但是我不会得到货币符号。C2.##不起作用

有什么建议吗?(不可选择硬编码货币符号)

十进制值=1603.42m;
var temp=string.Empty;
if(Decimal.Floor(value)

fbtmovgoot

检查小数是否包含小数元素,并根据结果返回不同的表示形式:

public string GetFormatStringForDecimal(myDec){
    return (Decimal.Ceiling(myDec) > myDec) ? "C2" : "C0";
}

此函数将返回问题中指定的十进制格式字符串。

@Eugene Cheverda-当然是。。。这就是我编写函数并命名它的方式。。。谢谢你捕捉到这个愚蠢的错误。谢谢-我喜欢这个解决方案-我正在使用新的Silverlight 4绑定格式-Text=“{binding TotalValueInPlay,StringFormat=C}”我必须看看它是否可以调用公共方法…好的,最后我不得不返回到转换器,而不是使用我想要的StringFormat,但我在转换器中使用了此代码-谢谢@Rodney-很高兴我能帮上忙:)谢谢所有的建议-所以基本上没有字符串格式语法-我必须在代码后面做一个方法并调用它?问题是我正在使用新的Silverlight 4绑定格式-Text=“{binding TotalValueInPlay,StringFormat=C}”我必须看看它是否可以调用公共方法。。。
public string GetFormatStringForDecimal(myDec){
    return (Decimal.Ceiling(myDec) > myDec) ? "C2" : "C0";
}