价格值(双倍)有时为1.23000,有时为1.230。我的ListView将其显示为1.23。不幸的是小数点的数字变化,我不能使用,即:F5或
StringFormat='{}{0:#,00000}'
如何使用StringFormat始终显示全零?
<TextBlock Text="{Binding Path=Price, StringFormat={Binding Path=DecimalPoints}}" />
答案 0 :(得分:1)
实际上WPF显示的是双倍的正确值。
如果您尝试运行
if (1.230000000d == 1.23d) throw new ArgumentException("Values are equal");
你会发现价值总是相等的。一旦编译器将字符串表示转换为double
,额外的零就会消失。
您可以尝试实现自己的Price
类,因为这样可以让您使用值保留表示,
public class Price
{
public double Value {get;set;}
public int precision {get;set;}
public override ToString()
{
return value.ToString("F"+precision);
}
}