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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2009, 13:49   #1
GydZu
 
Регистрация: 16.03.2009
Сообщений: 9
По умолчанию двадцати пяти значный калькулятор целых чисел

задали курсовую Двадцати пяти значный калькулятор целых чисел. но максимум что можно выжать из int64 это где то 20 знаков. mod и div поддерживает тока integer. Div я решил рассчитать таким путем
Код:
c:=(b / a);
   s:=Floattostr(c);
   Delete(s,Pos(',',s),Length(s))
   panel3.Caption:=s
т.е. деление и удаление после запятой всех цифр.

с mod сложнее.
Код:
c:=(b / a);
   s:=Floattostr(c);
   Delete(s,Pos(',',s),Length(s));
   panel3.Caption:=FloatToStr(b-(a*StrToFloat(s)))
все работает. но при очень больших числас с mod проблемы.возникают погрешности. Ответы типа:2,2222222222222Е22 и тп.

есть какие советы как решить данную проблему.
и как можно округлить число, допустим 22221,9999 а надо 22222.
GydZu вне форума Ответить с цитированием
Старый 10.06.2009, 14:17   #2
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

Цитата:
Округление дробного числа до N знаков после запятой
--------------------------------------------------------------------------------


Автор: Perceptron

function RoundEx(chislo: double; Precision: Integer): string;
var
ChisloInStr: string;
ChisloInCurr: currency;
begin
ChisloInCurr := chislo;
Str(ChisloInCurr: 20: Precision, ChisloInStr);
ChisloInStr[Pos('.', ChisloInStr)] := ',';
RoundEx := Trim(ChisloInStr);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text := RoundEx(StrToFloat(Edit1.Text), 25);
end;
DelphiWorld
S@fer вне форума Ответить с цитированием
Старый 11.06.2009, 10:12   #3
GydZu
 
Регистрация: 16.03.2009
Сообщений: 9
По умолчанию

Спасибо сафер
GydZu вне форума Ответить с цитированием
Старый 11.06.2009, 11:15   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вообще-то для округления есть либо RoundTo либо можно использовать format дабы привести к строке и округлить.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.06.2009, 10:31   #5
GydZu
 
Регистрация: 16.03.2009
Сообщений: 9
По умолчанию

Стилет, как осуществить это форматом?
GydZu вне форума Ответить с цитированием
Старый 12.06.2009, 15:26   #6
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

вообще-то говоря количество ЗНАЧАЩИХ цифр в переменной с плавающей запятой будет даже меньше чем в соответствующего размера целочисленном формате, так как часть разрядов занимает мантисса(порядок) числа.
F1 +real types
Fundamental real types
Type Range Significant digits Size in bytes
Real48 2.9 x 10^-39 .. 1.7 x 10^38 11-12 6
Single 1.5 x 10^-45 .. 3.4 x 10^38 7-8 4
Double 5.0 x 10^-324 .. 1.7 x 10^308 15-16 8

Extended 3.6 x 10^-4951 .. 1.1 x 10^4932 19-20 10

Comp -2^63+1 .. 2^63 -1 19-20 8
Currency -922337203685477.5808.. 922337203685477.5807 19-20 8
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 12.06.2009 в 15:29.
evg_m вне форума Ответить с цитированием
Старый 12.06.2009, 15:32   #7
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

смотрите темы длинная арифметика
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 13.06.2009, 10:55   #8
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

В принципе в курсовой по калькулятору с длинной арифметикой он просто не уложится по числу страниц .
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
массив целых чисел -ushёl- Помощь студентам 4 28.02.2009 19:18
массив целых чисел ^SPARTAK^ Паскаль, Turbo Pascal, PascalABC.NET 1 27.12.2008 10:59
Умножение длинных целых чисел Rifler Паскаль, Turbo Pascal, PascalABC.NET 1 04.06.2008 21:12
Перемещение из массива целых чисел... Си Sota Помощь студентам 1 01.06.2008 19:51
Вывод целых и десятичных чисел Maycal Общие вопросы C/C++ 2 24.10.2007 12:34