FormatString显示全零

时间:2013-08-29 16:15:17

标签: wpf xaml string-formatting

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

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

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

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

1 个答案:

答案 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);
   }
}