![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подсчитать вещественные числа в Listbox [D7, XP]
Rav4 © (2008-11-17 09:46:00)Доброе утро, мастера!
Подскажите пожалуйста, как подсчитать все вещественные числа в компоненте Listbox?
т.е. имеем такую структуру:
10.1
22.6
13.2
40.9
Результат: 86.8
Как это можно расчитать? Подскажите пожалуйста!
brother (2008-11-19 04:51:00) [1]> [15] Slym © (17.11.08 10:46)
> brother © (17.11.08 10:04) [4]
> поместать менями функции strtofloat и floattostr...
это было его домашнее задание на умение работать со справкой ;)
Anatoly Podgoretsky (2008-11-17 12:07:00) [2]
> чтобы тут же преобразовать это число в ту же исходную строку
> (FloatToStr)
Это если повезет, в частном случае.
Anatoly Podgoretsky (2008-11-17 12:05:00) [3]> Rav4 (17.11.2008 10:40:12) [12]
А ты приведи как у тебя неправильно, зачем же нам стараться писать, если у тебя такж как и у нас?
MsGuns (2008-11-17 11:09:00) [4]И еще.
"Прямое" приведение плавающего к строке может дать неудобоваримые результаты в виде длинной дробной части, поэтому в таких случаях вместо FloatToStr используют format
Сергей М. (2008-11-17 11:01:00) [5]
> вещественное число преобразуюу в строку
Зачем ?
listbox1.items.strings[i] - это и так уже строка.
> строку преобразую в число
Получается что ты взял строку (listbox1.items.strings[i]) и преобразовал в число(StrToFloat), чтобы тут же преобразовать это число в ту же исходную строку (FloatToStr)
Теперь вникни в то что ты проделал ..
Тебе нужно имея список строк в цикле пройтись по нему, преобразовав каждую строку в число и суммировать это число с промежуточным числом-результатом. Перед входом в цикл этот промежут.результат д.б. обнулен, по завершению цикла это будет окончательный результат, котороый для визуализации следует преобразовать в строку.
MsGuns (2008-11-17 11:00:00) [6]Правильный код в [15], но я бы заменил StrToFloat(listbox.items[1]) на StrToFloatDef(Listbox.items[i],0) во избежание AV если в боксе есть строка с нечислом
Rav4 (2008-11-17 10:51:00) [7]вещественное число преобразуюу в строку (строку преобразую в число(элементов списка)).
Прошу строго не судить. Я так рассуждаю... :/
Сергей М. (2008-11-17 10:49:00) [8]
> Rav4 (17.11.08 10:47) [16]
А теперь опиши словами, что ты делаешь в этой строке..
Сергей М. (2008-11-17 10:48:00) [9]
> Slym © (17.11.08 10:46) [15]
Медвежья услуга)
Rav4 (2008-11-17 10:47:00) [10]floattostr(strtoloat(listbox1.items.strings[i])) ???
Slym (2008-11-17 10:46:00) [11]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:43:00) [12]var t: real
тоже не прокатил
Сергей М. (2008-11-17 10:43:00) [13]
> Rav4 (17.11.08 10:40) [12]
Ты [9] прочитал ?
Что тебе там не понятно ?
Rav4 (2008-11-17 10:40:00) [14]Тогда как правильно?
Сергей М. (2008-11-17 10:31:00) [15]
> There is no overloaded version of ''FloatTostr'' that can
> be called with these arguments
Ф-ция FloatToStr не допускает аргумент, которые ты указал, см. [9]
Rav4 (2008-11-17 10:28:00) [16]Извините.
Ошибка 35.
There is no overloaded version of ''FloatTostr'' that can be called with these arguments
Сергей М. (2008-11-17 10:26:00) [17]
> А мня с англицким туго
У тебя и с русским хоть караул кричи.
Подсказка №2:
Аргументом FloatToStr() должно быть значение вещ.типа, результат - строковое представление этого значения.
Аргументом StrToFloat() должно быть значение стр.типа, результат - значение вещ.типа.
Суммированию подлежат значения вещ.типа, визуализации - значение стр.типа.
Amoeba (2008-11-17 10:25:00) [18]
> Rav4 (17.11.08 10:22) [7]
>
> Прошу прощения! Это были мои мысли в слух :)
>
> Компилятор ругается на код, якобы что-то не поддерживается.
>
> А мня с англицким туго :(
>
Так приведи здесь то, что говорит компилятор, переведем и объясним.
Rav4 (2008-11-17 10:22:00) [19]Прошу прощения! Это были мои мысли в слух :)
Компилятор ругается на код, якобы что-то не поддерживается.
А мня с англицким туго :(
Сергей М. (2008-11-17 10:18:00) [20]
> Что-то с оверлеями
С какими такими "оверлеями" ?
Не надо нести отсебячину, приводи точное описание отказа..