Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2009, 04:12   #1
OLEG'arh
Пользователь
 
Аватар для OLEG'arh
 
Регистрация: 23.11.2006
Сообщений: 42
Вопрос проблема с типом?

Вопрос в коментах, в конце кода.
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  kadr:array [0..5] of integer=(46,300,600,900,1200,1500);
  vre_kadr:array [0..5] of real=(67.2, 270.4,510.4,750.4,990.4,1230.4);
  laymda: array [0..5] of real;
  S:array [0..5] of real;
  Form1: TForm1;
  i,j:integer;

implementation

uses  Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Show;
  j:=0;
  While J<6 do
    begin
       laymda[j]:=1/vre_kadr[j]*1000000;
       form2.Memo1.Lines.Add(ччч= '+inttostr(kadr[j])+']= 1 / '+floattostr(vre_kadr[j])+' * 1000000='+floattostrF(laymda[j],ffNumber,7,2));
       inc(j);
    end;


  j:=0;
  While J<6 do
      begin
      s[j]:=laymda[j]*vre_kadr[j]*2;
      form2.Memo1.Lines.Add('S['+inttostr(kadr[j])+']= '+ floattostrF(laymda[j],ffNumber,7,2)+' * 2 * '+floattostr(vre_kadr[j])+'= '+floattostrF(S[j],ffFixed	,9,9));
      inc(j)
    end;


//Обратите винимание... значение переменной S[j] задавалось 
//используя другие переменные (    s[5]:=laymda[5]*vre_kadr[5]*2;  где   laymda[5]= 812,74;   vre_kadr[5]=1230.4 ) 
//и результат "2000000"  в то время как "s[5]:=812.74*2*1230.4" = 1999990,592
//с чем это связанно и как это исправить????


          ShowMessage(FloatToStr(s[5]));
          s[5]:=812.74*2*1230.4;
          ShowMessage(FloatToStr(s[5]));

end;

end.
OLEG'arh вне форума Ответить с цитированием
Старый 03.03.2009, 08:21   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ты неверно число взял, ты его округлил. У тебя laymda[5]=812.74382315,
а ты до второго знака округлил.

Короче округлять тебе нужно, скажем функой FloatToStrF
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.03.2009, 09:33   #3
OLEG'arh
Пользователь
 
Аватар для OLEG'arh
 
Регистрация: 23.11.2006
Сообщений: 42
По умолчанию

:-)

обратите внимание
Я не переменные округляю, а результат при выводе в memo1 причём в этом же коде (вы можете увидеть) как функцией FloatToStr, так и FloatToStrF.

что касается FloatToStrF, пробовал пазные параметры:
ffGeneral Основной числовой формат
ffExponent Научный формат
ffFixed Формат с фиксированной запятой
ffNumber Числовой формат
ffCurrency Монетарный формат

Коллеги, попробуйте мож я мелочь какую пропускаю???
или как то по другому сделать можноюююю
OLEG'arh вне форума Ответить с цитированием
Старый 03.03.2009, 10:49   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ниче я не понял, в чем проблема?
Ты выводиш одно а сетушь на другое.

Можеш нормально обьяснить какой именно результат правильный по твоему мнению.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.03.2009, 16:02   #5
OLEG'arh
Пользователь
 
Аватар для OLEG'arh
 
Регистрация: 23.11.2006
Сообщений: 42
По умолчанию

ну а 812.74*2*1230.4 сколько будет?))) (s[j]:=laymda[j]*vre_kadr[j]*2; при j=5)

1999990,592 правильный

там же всё решение в мемо выводится, обратите пожалуйсто внимание.
только результат "2", а мне нужно что бы вывел "1999990,592".
OLEG'arh вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DBGrid и поля с типом MEMO doncova1 БД в Delphi 4 27.03.2009 01:20
RAS API. Проблемы с типом соединения MadMas Работа с сетью в Delphi 0 19.01.2009 09:48
помогите с решением программ с перечисляемым типом Alex@ndra Помощь студентам 1 14.12.2008 11:36
Ассоциирование программы с типом файлов ZhekON Общие вопросы Delphi 7 01.06.2007 18:33
Работа с типом Record TheNovice Помощь студентам 4 28.02.2007 17:52