0

价格值(双倍)有时为 1.23000,有时为 1.230。我的 ListView 显示为 1.23。不幸的是,小数点数发生了变化,我不能使用,即:F5 或

StringFormat='{}{0:#,00000}'

如何使用 StringFormat 始终显示全零?

<TextBlock Text="{Binding Path=Price, StringFormat={Binding Path=DecimalPoints}}"  />
4

1 回答 1

1

实际上 WPF 正在显示双精度的正确值。

如果你尝试跑步

if (1.230000000d == 1.23d) throw new ArgumentException("Values are equal");

你会发现这些值总是相等的。一旦编译器将字符串表示形式转换为 adouble额外的零就消失了。

您可以尝试实现自己的Price类,因为这将使您能够将表示与值保持一致,

public class Price
{
    public double Value {get;set;}
    public int precision {get;set;}

   public override ToString()
   {
        return value.ToString("F"+precision);
   }
}
于 2013-08-29T17:08:51.573 回答