4

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

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

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

4

2 回答 2

1

您应该使用StringFormata 的属性Binding。如果您希望它在点后显示 2 个数字,您的TextBoxXAML 应该如下所示:

<TextBox Text="{Binding YourText, StringFormat=N2}" />

如果您需要有关 的更多信息StringFormat,我鼓励您阅读有关标准数字格式字符串的 MSDN 文章

于 2012-12-31T22:17:59.343 回答
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();
}

我只是输入了这个想法,可能会有一些错误。

于 2012-12-31T13:22:35.173 回答