Текущий архив: 2008.12.28;
Скачать: CL | DM;
Вниз
Подсчитать вещественные числа в Listbox Найти похожие ветки
← →
Rav4 (2008-11-17 09:46) [0]Доброе утро, мастера!
Подскажите пожалуйста, как подсчитать все вещественные числа в компоненте Listbox?
т.е. имеем такую структуру:
10.1
22.6
13.2
40.9
Результат: 86.8
Как это можно расчитать? Подскажите пожалуйста!
← →
Сергей М. © (2008-11-17 09:49) [1]
> вещественные числа в компоненте Listbox
Там нет вещественных чисел.
Там есть строковые представления вещественных чисел.
Подсказка: StrToFloat()
← →
Rav4 (2008-11-17 10:00) [2]Что-то с утра не включаюсь...
procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
s: string;
t: extended;
begin
for i:=0 to listbox1.Items.Count-1 do
begin
s:= listbox1.Items.Strings[i];
t:=
label1.Caption:= floattostr(t);
end;
end;
← →
brother © (2008-11-17 10:02) [3]procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
// s: string;
t: extended;
begin
t:=0;
for i:=0 to listbox1.Items.Count-1 do
begin
t:=t+floattostr(listbox1.Items.Strings[i]);
label1.Caption:= strtofloat(t); // не помню точно как функция называется
end;
end;
как то так...
← →
brother © (2008-11-17 10:04) [4]procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
// s: string;
t: extended;
begin
t:=0;
for i:=0 to listbox1.Items.Count-1 do
t:=t+floattostr(listbox1.Items.Strings[i]);
label1.Caption:= strtofloat(t);
end;
даже лучше так
← →
Rav4 (2008-11-17 10:12) [5]Спасибо!
Но чета-не так....
floattostr
strtofloat не пашут.
Что-то с оверлеями....
← →
Сергей М. © (2008-11-17 10:18) [6]
> Что-то с оверлеями
С какими такими "оверлеями" ?
Не надо нести отсебячину, приводи точное описание отказа..
← →
Rav4 (2008-11-17 10:22) [7]Прошу прощения! Это были мои мысли в слух :)
Компилятор ругается на код, якобы что-то не поддерживается.
А мня с англицким туго :(
← →
Amoeba © (2008-11-17 10:25) [8]
> Rav4 (17.11.08 10:22) [7]
>
> Прошу прощения! Это были мои мысли в слух :)
>
> Компилятор ругается на код, якобы что-то не поддерживается.
>
> А мня с англицким туго :(
>
Так приведи здесь то, что говорит компилятор, переведем и объясним.
← →
Сергей М. © (2008-11-17 10:26) [9]
> А мня с англицким туго
У тебя и с русским хоть караул кричи.
Подсказка №2:
Аргументом FloatToStr() должно быть значение вещ.типа, результат - строковое представление этого значения.
Аргументом StrToFloat() должно быть значение стр.типа, результат - значение вещ.типа.
Суммированию подлежат значения вещ.типа, визуализации - значение стр.типа.
← →
Rav4 (2008-11-17 10:28) [10]Извините.
Ошибка 35.There is no overloaded version of ""FloatTostr"" that can be called with these arguments
← →
Сергей М. © (2008-11-17 10:31) [11]
> There is no overloaded version of ""FloatTostr"" that can
> be called with these arguments
Ф-ция FloatToStr не допускает аргумент, которые ты указал, см. [9]
← →
Rav4 (2008-11-17 10:40) [12]Тогда как правильно?
← →
Rav4 (2008-11-17 10:43) [13]var t: real
тоже не прокатил
← →
Сергей М. © (2008-11-17 10:43) [14]
> Rav4 (17.11.08 10:40) [12]
Ты [9] прочитал ?
Что тебе там не понятно ?
← →
Slym © (2008-11-17 10:46) [15]brother © (17.11.08 10:04) [4]
поместать менями функции strtofloat и floattostr...procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
t: extended;
begin
t:=0;
for i:=0 to listbox1.Items.Count-1 do
t:=t+strtofloat(listbox1.Items.Strings[i]);
label1.Caption:= floattostr(t);
end;
← →
Rav4 (2008-11-17 10:47) [16]floattostr(strtoloat(listbox1.items.strings[i])) ???
← →
Сергей М. © (2008-11-17 10:48) [17]
> Slym © (17.11.08 10:46) [15]
Медвежья услуга)
← →
Сергей М. © (2008-11-17 10:49) [18]
> Rav4 (17.11.08 10:47) [16]
А теперь опиши словами, что ты делаешь в этой строке..
← →
Rav4 (2008-11-17 10:51) [19]вещественное число преобразуюу в строку (строку преобразую в число(элементов списка)).
Прошу строго не судить. Я так рассуждаю... :/
← →
MsGuns © (2008-11-17 11:00) [20]Правильный код в [15], но я бы заменил StrToFloat(listbox.items[1]) на StrToFloatDef(Listbox.items[i],0) во избежание AV если в боксе есть строка с нечислом
← →
Сергей М. © (2008-11-17 11:01) [21]
> вещественное число преобразуюу в строку
Зачем ?
listbox1.items.strings[i] - это и так уже строка.
> строку преобразую в число
Получается что ты взял строку (listbox1.items.strings[i]) и преобразовал в число(StrToFloat), чтобы тут же преобразовать это число в ту же исходную строку (FloatToStr)
Теперь вникни в то что ты проделал ..
Тебе нужно имея список строк в цикле пройтись по нему, преобразовав каждую строку в число и суммировать это число с промежуточным числом-результатом. Перед входом в цикл этот промежут.результат д.б. обнулен, по завершению цикла это будет окончательный результат, котороый для визуализации следует преобразовать в строку.
← →
MsGuns © (2008-11-17 11:09) [22]И еще.
"Прямое" приведение плавающего к строке может дать неудобоваримые результаты в виде длинной дробной части, поэтому в таких случаях вместо FloatToStr используют format
← →
Anatoly Podgoretsky © (2008-11-17 12:05) [23]> Rav4 (17.11.2008 10:40:12) [12]
А ты приведи как у тебя неправильно, зачем же нам стараться писать, если у тебя такж как и у нас?
← →
Anatoly Podgoretsky © (2008-11-17 12:07) [24]
> чтобы тут же преобразовать это число в ту же исходную строку
> (FloatToStr)
Это если повезет, в частном случае.
← →
brother © (2008-11-19 04:51) [25]> [15] Slym © (17.11.08 10:46)
> brother © (17.11.08 10:04) [4]
> поместать менями функции strtofloat и floattostr...
это было его домашнее задание на умение работать со справкой ;)
Страницы: 1 вся ветка
Текущий архив: 2008.12.28;
Скачать: CL | DM;
Память: 0.52 MB
Время: 0.013 c