【问题标题】:How to round double in XAML, WPF? [duplicate]如何在 XAML、WPF 中舍入双精度值? [复制]
【发布时间】:2014-05-16 17:49:16
【问题描述】:

我在 XAML 中有以下代码:

<TextBlock Text="{Binding XValue}" />

XValue 包含很多小数(1952.230822830529)

我希望它只包含 2 位小数,例如 1952.23,我想在 XAML 代码中执行此操作。

我已经搜索了互联网,但没有找到解决我的问题的方法 - 那么是否可以使用字符串格式在 XAML 中执行此操作?

【问题讨论】:

  • XValue 的类型是什么?

标签: wpf xaml double rounding


【解决方案1】:

这是这篇文章的副本(也是谷歌上的最高结果):How to format number of decimal places in wpf using style/template?

尝试以下方法之一:

<TextBox Text="{Binding XValue, StringFormat=N2}" />
<TextBox Text="{Binding XValue, StringFormat=#,#.00}" />

【讨论】:

  • 是的。投票结束 - 这是一个重复的问题。
  • 是的,它是重复的,我很抱歉。以上就是我的问题的解决方法,谢谢告知!
  • @user1093774 没问题,很高兴我们能帮你找到答案!
【解决方案2】:

如果XValue 是数字(不是string 类型),您可以使用

<TextBlock Text="{Binding XValue, StringFormat={}{0:N2}}"/>

【讨论】:

    【解决方案3】:

    创建一个 XAML 转换器并在其 Convert() 方法中调用 Math.Round()。见MSDN

    【讨论】:

    • 我敢打赌,如果您编写一些本机代码并通过 PInvoke 调用它,您可以针对其他人证明的一个简单问题制定更复杂的解决方案;)
    • 是的。但是Silverlight 3? WP 7.0?微软接下来会想出什么?
    猜你喜欢
    • 2011-01-08
    • 1970-01-01
    • 2021-07-13
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2018-05-31
    • 1970-01-01
    相关资源
    最近更新 更多