问题
I'm using scientific notation in XAML. I do:
<TextBox Text="{Binding Path=CELULARIDAD_CFU, StringFormat='e6'}"/>
The problem is that for 1710000 is showing: 1.710000e+006, which is correct but I would like to see 1.71e+6. How is this specified in XAML? (Not in code)
回答1:
I believe you should use the G format specifier to get (almost) what you want.
<TextBox Text="{Binding Path=CELULARIDAD_CFU, StringFormat='G'}"/>
Within a certain range (different for different number types, see link) the number will then be displayed in normal notation. For large or small enough values, the values will be displayed without trailing zeroes and 2 exponent digits.
Examples for float
:
1340000 => 1340000
13400000 => 1.34e+07
0.00054 => 0.00054
0.000054 => 5.4e-05
回答2:
I didn't found exactly what I want so I decided to use an IValueConverter. Example:
Public Class scientificNotation6
Implements IValueConverter
Const EXP As Double = 1000000
Public Function Convert(value As Object, targetType As System.Type, parameter As Object, culture As System.Globalization.CultureInfo) As Object Implements System.Windows.Data.IValueConverter.Convert
Return CDbl(value) / EXP 'whatever you want
End Function
Public Function ConvertBack(value As Object, targetType As System.Type, parameter As Object, culture As System.Globalization.CultureInfo) As Object Implements System.Windows.Data.IValueConverter.ConvertBack
Return CDbl(value) * EXP 'whatever you want
End Function
End Class
And then in the XAML page:
<TextBox Text="{Binding Path=CELULARIDAD_CONGELADO, Converter={StaticResource scientificNotation6}"/>
I hope it helps.
来源:https://stackoverflow.com/questions/11247375/scientific-notation-xaml