[DisplayFormat(DataFormatString = "{0:C0}")]
This should give you 0 decimals. But automatically rounds! so if you got ,56 it will round up to 1
20000,00 => 20000 €
20000,56 => 20001 €
20000,49 => 20000 €
/edit: I have borrowed an idea from here: c# Decimal to string for currency
If you can convert your float value to decimal, you can use this Extensionmethod to omit the 0. It truncates the decimal and if this truncated value is equal to the original value, it cuts the zeros. If not, it displays 2 digits.
I know this is no Dataformat string, but I'm not quiet sure, it can be done in an as simple way as an annotation.
public static string ToCurrencyString(this decimal d)
{
return d.Equals(Decimal.Truncate(d)) ? d.ToString("0 €") : d.ToString("0.00 €");
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…