尝试将字符串转换为小数

时间:2017-03-28 10:01:10

标签: c# uwp

以下代码不起作用。 1)它不是在try函数中转换double liczbaa = Convert.ToDouble(a) 但它没有这样做 并跳过异常然后程序中断。 1)它没有在trzyde_wynik.Text中显示格式异常“坏值”

<input type="button" value="Search" onclick="test();" />

1 个答案:

答案 0 :(得分:2)

所以这里显然有三个问题:

  1. 正确地将文本框值解释为double
  2. 尊重特定于文化的小数点分隔符
  3. 使用小数分隔符而不是科学记数法返回结果
  4. 基于此,以下内容应该让您前进。请注意double.TryParse()和ToString(&#34; F6&#34;)的用法,它将结果格式化为分隔符后面6位小数的浮点数:

    private void wylicz_Click(object sender, RoutedEventArgs e)
    {
        string a, b, c;
    
        var culture = System.Globalization.CultureInfo.CreateSpecificCulture("pl-PL");
        var style = System.Globalization.NumberStyles.Number;
        a = wpis_a.Text;
        b = wpis_b.Text;
        c = wpis_c.Text;
    
        double liczba1 = 0.0;
        double liczba2 = 0.0;
        double liczba3 = 0.0;
    
        if (!(double.TryParse(a, style, culture, out liczba1) && double.TryParse(b, style, culture, out liczba2) && double.TryParse(c, style, culture, out liczba3)))
        {
            trzyde_wynik.Text = "bad values";
        }
        else
        {
            double trzyde_w = (liczba1 * liczba2 * liczba3) / 1000000;
            trzyde_wynik.Text = trzyde_w.ToString("F6", culture);
        }
    }