Scientific notation XAML

拜拜、爱过 提交于 2019-12-20 06:15:30

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!