Рейтинг:
6
OriginalGriff
Ну да.
То, что вы делаете, это:
int total = 0;
for (int i = 1; i < 10; i++)
{
total = i;
}
Console.WriteLine(total);
И вы удивляетесь, когда результат всегда "9".
Конечно, это так: вы переписываете значение
total
каждый раз, когда вы идете по кругу.
То, что вам нужно сделать, это:
int total = 0;
for (int i = 1; i < 10; i++)
{
total += i;
}
Console.WriteLine(total);
И вы получите эту сумму.
Но вам не нужно быть таким сложным!
culture = CultureInfo.CreateSpecificCulture("dk-DK");
NumberStyles style = NumberStyles.Number;
double number;
double total = 0.0;
foreach (string value in values)
{
if (Double.TryParse(value, style, culture, out number))
{
total += Number;
}
}
litSum.Text = total.ToString();
Martin Lauritsen
Он работает, спасибо Вам большое, я пытаюсь перейти на десятичную систему счисления, так что он сохраняет десятичные числа. Но это не работает, вы не знаете, почему ?:) я принимаю решение
OriginalGriff
Не видя вашего кода и того, что именно вы сделали? Понятия не имею! :смеяться:
Всегда считайте, что мы не видим ваш экран...
Martin Lauritsen
ха-ха ОФК ;)
десятичное число = 0;
десятичная сумма = 0;
for (int j = 0; j < Rows; j++)
{
TextBox t = (текстовое поле)(PlaceHolder1.FindControl("txtPrice_" + Дж));
string[] values = { t.Text };
CultureInfo culture = null;
культура = CultureInfo.CreateSpecificCulture("dk-DK");
NumberStyles style = NumberStyles.Номер;
по каждому элементу (строка значения в значения)
{
если (десятичное число.Метод tryparse(значение, тип, культура, количество))
{
общее число;
}
лицум.текстовая строка.Формат("{0:0.00}", всего.Метод toString());
}
}
OriginalGriff
Почему вы создаете массив из одного значения только для того, чтобы обработать его с помощью цикла foreach? В этом нет никакого смысла...
Начните с точного просмотра того, что находится в ваших текстовых полях - и я имею в виду именно это, используйте отладчик, чтобы узнать - и посмотрите, что он возвращает в результате TryParse.
Избавьтесь от массива и foreach - они вам не нужны - и переместите определения культуры и стиля за пределы внешнего цикла.
Какие входные данные вы получаете, и что происходит, когда вы их получаете?
decimal number = 0;
decimal total = 0;
CultureInfo culture = CultureInfo.CreateSpecificCulture("dk-DK");
NumberStyles style = NumberStyles.Number;
for (int j = 0; j < Rows; j++)
{
TextBox t = (TextBox)(PlaceHolder1.FindControl("txtPrice_" + j));
if (t != null)
{
string value = t.Text;
if (decimal.TryParse(value, style, culture, out number))
{
total += number;
}
} // breakpoint this line, and look at value and number
}
litSum.Text = String.Format("{0:0.00}", total.ToString());
Martin Lauritsen
я получаю номер вот так 58750 и он должен быть 58750
Martin Lauritsen
или это 1.942,00
OriginalGriff
И что именно вы вкладываете, чтобы получить его?
Что именно находится в текстовом поле.Свойство текста? Отладчик покажет вам, но я не вижу вашего экрана!
Martin Lauritsen
txt1 = 293,75
txt2 = 493,75
Итого = 787,5
OriginalGriff
А, это просто.
Вы неправильно поняли культурный код. Это не "ДК-ДК" для Дании, это "да-ДК" для "датчанин - Дания"
Измените на это:
CultureInfo culture = CultureInfo.CreateSpecificCulture("da-DK");
И это сработает.
Martin Lauritsen
omg вы правы, большое вам спасибо за всю помощь, теперь это работает :)
OriginalGriff
Всегда пожалуйста!