Silverlight 4 / C#:我有一个标签,显示以线程文化的货币(带小数点后2位)格式化的数字,例如
25显示为25.00美元,25.01显示为25.01美元
我为此使用“StringFormat = C2”。我的问题是......如果有小数位,我只想显示2位小数。 e.g。
25应显示为25美元,25.01显示为25.01美元
使用正常数字我会使用# - 例如。 #。##如果它们不存在则会压缩小数,但是我没有得到货币符号。 C2。##不起作用。
有什么建议吗? (硬编码货币符号不是一种选择)
答案 0 :(得分:4)
检查小数是否包含小数元素,并根据结果返回不同的表示:
public string GetFormatStringForDecimal(myDec){
return (Decimal.Ceiling(myDec) > myDec) ? "C2" : "C0";
}
此函数将返回您问题中指定的小数的格式字符串。
答案 1 :(得分:1)
decimal value = 1603.42m;
var temp = string.Empty;
if (Decimal.Floor(value) < value) //means value is with decimal part
temp = value.ToString("C2", new CultureInfo("en-US"));
else
temp = value.ToString("C0", new CultureInfo("en-US"));
return temp;
FBTMoVGogot