2013-08-29 3 views
0

Ценовая стоимость (double) иногда 1.23000, а иногда 1.230. Мой ListView показывает это как 1.23. Unfortunatelly Numer десятичных изменений точек и я не могу использовать т.е .: F5 илиФорматString для отображения всех нулей

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

Как использовать StringFormat всегда показывать все нули?

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

ответ

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); 
    } 
} 
Смежные вопросы