2012-06-28 141 views
0

我在XAML中使用科学记数法。我做的:科学记数法XAML

<TextBox Text="{Binding Path=CELULARIDAD_CFU, StringFormat='e6'}"/> 

的问题是,对于171万的显示:1.710000e + 006,这是正确的,但我想看到1.71e + 6。这在XAML中如何指定? (不在代码中)

回答

1

我没有找到我想要的东西,所以我决定使用的IValueConverter。例如:

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 

然后在XAML页面:

<TextBox Text="{Binding Path=CELULARIDAD_CONGELADO, Converter={StaticResource scientificNotation6}"/> 

我希望它能帮助。

1

我相信你应该使用G format specifier(几乎)得到你想要的。

<TextBox Text="{Binding Path=CELULARIDAD_CFU, StringFormat='G'}"/> 

在一定的范围内(对于不同的号码类型不同,请参见链接),号码将以正常表示法显示。对于足够大或足够小的值,将显示值,而不显示尾随零和2个指数数字。对于float

例子:

1340000 => 1340000 
13400000 => 1.34e+07 
0.00054 => 0.00054 
0.000054 => 5.4e-05 
+0

关闭,但不完全是我想要的。我会找到另一种方式。谢谢 – nachovall

+0

我不认为你可以比没有额外的代码更接近。也许你应该考虑使用一个值转换器来完全按照你想要的方式来获取它? –