0

我在 XAML 中使用科学记数法。我愿意:

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

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

4

2 回答 2

1

我相信你应该使用G 格式说明符来获得(几乎)你想要的东西。

<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
于 2012-06-28T19:32:09.703 回答
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}"/>

我希望它有所帮助。

于 2012-06-29T08:03:13.287 回答