我的WinUI 3应用程序中的一个数字框将浮点值5.94显示为“5.939999995”。此数字框绑定到视图模型的浮点属性。还有其他数字框绑定到同一视图模型的不同示例,其他数字框可以正常显示其浮点值(精细的意思是显示2个十进制数字,由绑定到所有这些数字框的数字格式化程序定义)。
数字框Xaml定义:
<NumberBox
Value="{x:Bind Path=MainVM.ViewModel[5].SomeNumber, Mode=TwoWay}"
/>
字符串
如前所述,每个数字框都附加了一个数字格式化程序,将十进制数字限制为2位,但这仍然不能解释为什么5.94没有显示为5.94。
2条答案
按热度按时间7z5jn7bk1#
Binary floating point math is like this的一个。
但在这种情况下,您可以实现一个自定义的number formatter,例如:
字符串
注意:它没有记录AFAIK,但INumberFormatter2必须也实现INumberParser,否则你会得到更多外来的神秘错误的“无效参数”...
示例XAML:
型
vsikbqxv2#
IIRC,这是
NumberFormatter
的问题。你能试试这个代码吗?个字符