2017-02-22 101 views
0

Я хотел бы сделать инструмент для расчета стандартного отклонения.Как суммировать двойные переменные, полученные из разделенной строки

Поскольку я хотел, чтобы пользователь поместил все значения из дистрибутива в том же текстовом поле, мне пришлось создать строку.

я решил разбить его, используя этот метод:

char[] delimiterChars = { ' ' }; 
 

 
string values = richTextBox1.Text; 
 

 
string[] numberCount = values.Split(delimiterChars); 
 

 

 
    foreach (string s in numberCount) 
 
    { 
 
    Convert.ToDouble(s); 
 
    
 
    }

Однако, когда я пытаюсь делать математические операции с 's', такие как MessageBox.Show(s -s); внутри foreach (string s in numberCount) { это получает выделение красным squiggly, а затем говорит мне, что он не может применять операции к 's' и 's', потому что они имеют строковый тип.

Мой вопрос: почему он говорит мне, что 's' является строкой, хотя я преобразовал ее в double, используя Convert.ToDouble(s);? И как я могу сделать эту работу суммированием всех значений, которые были разделены переменной 'value'?

Спасибо заранее, JSGarden

PS: Источник доступен по крайней github.com/jsgarden/ecartMoyen

ответ

0

Вы можете использовать LINQ:

string[] numberCount = values.Split(delimiterChars); 
double sum = numberCount.Select(s => double.Parse(s)).Sum(); 
0

Convert.ToDouble(s); не конвертировать s Удвоить но он возвращается дважды значение, преобразованное из строки s. Вам нужно сохранить возвращаемое значение для некоторой другой переменной double для выполнения математических операций над ней.

string values = richTextBox1.Text; 
string[] numberCount = values.Split(delimiterChars); 
double totalValue = 0; 

foreach (string s in numberCount) 
{ 
    var doubleValue = Convert.ToDouble(s); 
    totalValue += doubleValue; 
    MessageBox.Show(doubleValue - doubleValue); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^