我有一个文本框,我已将text属性绑定到我的视图模型类中的double值。我还为文本框创建了正则表达式,以便只输入数值。
我正在计算视图模型类中的值。如果value小于或等于0.00001,则它会在文本框中显示指数格式,如(1.E-5)。
我想在文本框中显示双倍值,如0.00001,而不是指数格式。我也不想使用字符串格式,即D,F2,F5。因为它限制了浮点数。我该如何解决?
答案 0 :(得分:0)
我知道这不是一个解决方案,但它可能有所帮助。您可以使用获取此类字符串的方法并更改其格式
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();
}
我只是输入了这个想法,可能会有一些错误。
答案 1 :(得分:0)
您应该使用StringFormat
的{{1}}属性。您的Binding
XAML应该如下所示,如果您希望它在点后显示2个数字:
TextBox
如果您需要有关<TextBox Text="{Binding YourText, StringFormat=N2}" />
的更多信息,建议您阅读Standard Numeric Format Strings上的MSDN文章