如何在XAML中格式化双精度值,以删除末尾的零,而不需要科学的表示
本文关键字:不需要 表示 XAML 格式化 双精度 删除 | 更新日期: 2023-09-27 18:17:07
我需要在ListView中显示双值,如:0.00008。不幸的是,数值通常被表示为指数/科学:1E-8。我不希望用户看到1E-8类型的值。我不知道也不想知道用过的双精度数的小数点精度。我不会四舍五入。我可以用c#解决这个问题:
string s = doubleValue.ToString("0.####################"); // gives what I need: 0,00008
如何使用xaml做完全相同的格式化?
<ListView.View>
<GridView AllowsColumnReorder="False">
<GridView.Columns>
<GridViewColumn.CellTemplate>
<DataTemplate>
<Border>
<Grid>
<TextBlock x:Name="textBlock1" Text="{Binding Path=Profit, StringFormat={{???}}" TextTrimming="CharacterEllipsis" />
</Grid>
</Border>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridView.Columns>
</GridView>
</ListView.View>
或者如何使用c#将这种格式分配给后面的代码中的textBlock1 ?
<TextBlock x:Name="textBlock1"
Text="{Binding Path=Profit,
StringFormat={}{0:0.####################}}"
TextTrimming="CharacterEllipsis" />
在许多情况下,您得到这些数字的原因是因为您实际上应该使用小数而不是双精度。如果你用双精度进行计算,你经常会得到很小的小数误差,这是很容易避免的。
尝试使用StringFormat=F6,这将格式化您的数字到小数点后6位
试试这个:
Text="{Binding Profit, StringFormat='0.00000'}"