Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.011 c
4-1202837079
Dmitrij
2008-02-12 20:24
2008.12.28
Есть чужое приложение, нужно определить состояние Tbutton


15-1224866998
DVM
2008-10-24 20:49
2008.12.28
Подскажите чайнику в Java


2-1227018456
abhtr
2008-11-18 17:27
2008.12.28
Как программно создать Paradox таблицу с Table type = Paradox 3.5


2-1227036079
front
2008-11-18 22:21
2008.12.28
Объявление переменной


4-1202738807
Unicode
2008-02-11 17:06
2008.12.28
TLogFontW и DrawTextW