从文本框中获取数据并相乘

时间:2014-03-16 16:27:52

标签: c# json double type-conversion

我有:

textbox1.text == 1.4087
textbox2.text == 521.54

它没有硬编码,我是从JSON获得的。无论如何,我想将这两个数字相乘。

我使用此代码:

double curr = 0.0;
double price = 0.0;
double multiply = 0.0;

double.TryParse(textBox1.Text, out curr);
double.TryParse(textBox2.Text, out price);

multiply = curr * price;

textBox3.Text = multiply.ToString();

我也试过Convert.ToDouble仍然没有运气。 我总是在textBox3中得到0。显然字符串不会被识别为double。但他们是。有任何想法吗?谢谢!

编辑:来自JSON:

{"high": "567.88", "last": "543.95", "timestamp": "1394987785",

我使用此代码来获取我需要的内容:

Regex expression = new Regex(@"last"":\s""(?<Identifier>[0-9]+\.[0-9]+)");
      var results = expression.Matches(Cryp);
                foreach (Match match in results)
                {
                    textBox1.Text = match.Groups["Identifier"].Value;
                } 

这里有什么问题吗?

2 个答案:

答案 0 :(得分:0)

我会假设其中一个TryParse调用失败,导致它保持值为0,因此无论工作是什么,结果都会得到0。

我刚刚编写了一个带有三个文本框的基本ASP.NET应用程序,然后粘贴了您的代码,而没有将任何内容更改为提交按钮的事件处理程序。手动输入您提供的两个数字,在TextBox3中给出了734.693398的正确答案。您的输入必须关闭。

答案 1 :(得分:0)

试试这个:

double.TryParse(textBox1,NumberStyles.AllowDecimalPoint,
                                 CultureInfo.InvariantCulture, out curr);
double.TryParse(textBox2.Text,NumberStyles.AllowDecimalPoint,
                                 CultureInfo.InvariantCulture, out price);
multiply = curr * price;