在文本框中将指数值替换为double值

时间:2012-12-31 12:55:59

标签: wpf c#-4.0 mvvm telerik

我有一个文本框,我已将text属性绑定到我的视图模型类中的double值。我还为文本框创建了正则表达式,以便只输入数值。

我正在计算视图模型类中的值。如果value小于或等于0.00001,则它会在文本框中显示指数格式,如(1.E-5)。

我想在文本框中显示双倍值,如0.00001,而不是指数格式。我也不想使用字符串格式,即D,F2,F5。因为它限制了浮点数。我该如何解决?

2 个答案:

答案 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文章