我有一个文本框,并且我已将文本属性绑定到我的视图模型类中的双倍值。我还为文本框创建了正则表达式,以便只输入数值。
我正在计算我的视图模型类中的值。如果值小于或等于 0.00001,则在文本框中显示指数格式,如 (1.E-5)。
我想在文本框中显示像 0.00001 这样的双精度值,而不是指数格式。我也不想使用字符串格式,即 D、F2、F5。因为它限制了浮点数。我该如何解决?
您应该使用StringFormat
a 的属性Binding
。如果您希望它在点后显示 2 个数字,您的TextBox
XAML 应该如下所示:
<TextBox Text="{Binding YourText, StringFormat=N2}" />
如果您需要有关 的更多信息StringFormat
,我鼓励您阅读有关标准数字格式字符串的 MSDN 文章
我知道这不是解决方案,但它可能会有所帮助。您可以使用获取这样的字符串并更改其格式的方法
string expon2notexpon(string num)
{
num=num.ToLower();
int index=num.IndexOf('e');
if (index == -1)
return num;
string firstNum=num.Substring(0, index-1);
int count=int32.Parse(num.Substring(index+1));
res="0.";
for (int i=1;i<count;i++)
{
res += '0'
}
res += firstNum.ToString();
}
我只是输入了这个想法,可能会有一些错误。