![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Раота с ограмадными числами.
markers © (2004-11-10 09:19:00)Народ подскажите плиз как раотать с числом в 12 знаков и более, Особенно важны такие вещи как, вычесть и одного большого числа другое, Поделить на Tb, Gb, Mb, Kb, b. (Кстати как лучше всего это сделать?), Что самое отвратительное эти два числа крупных с которыми мне нужно работать нахоятся в стринге, а как их сконвентировать в число, так как они такие крупные не знаю... Ведь у интегера есть ограничение....
Вообщем подскажите люди добрые!;) Заранее сенкью;)
Gloomer (2004-11-10 13:03:00) [1]Если нужны действительно большие числа, больше чем Int64,
послушай TUser © (10.11.04 11:03) [28]
и сходи http://algolist.manual.ru/maths/longnum.php
KSergey (2004-11-10 11:23:00) [2]> [25] begin...end © (10.11.04 10:15)
> Или перейти на какой-нибудь из real types...
А вот это судя по задаче не пойдет. Видимо там надо складывать большие числа с маленькими, и, боюсь, в случае real-типов лимит интернета у пользователей никогда не настанет... ;)
TUser (2004-11-10 11:03:00) [3]Самое правильное - сходить на алголист. Длинная арифметика - там очень популярная тема, и на форуме и статьи лежат хорошие
Думкин (2004-11-10 10:25:00) [4]9223372036854775807
markers (2004-11-10 10:18:00) [5]да врядли оно будет ольше этого, ну по крайней мере сильно больше
Спасибо
begin...end (2004-11-10 10:15:00) [6]markers © (10.11.04 10:09) [22]
> А какое там максимальное значение интегера?
Как верно заметил KilkennyCat © (10.11.04 9:56) [13], это значение для Int64 равно 2^63 - 1. Для Integer: 2147483647. А как верно заметил KSergey © (10.11.04 9:59) [16], лучше в чём-нибудь другом считать. Или перейти на какой-нибудь из real types...
---------------------
Sorry, I'm drunk now.
markers (2004-11-10 10:15:00) [7]Странно пять минут проверял не работало, сейчас проверил РАБОТАЕТ;) Ну наконец-то!;)
Остается только разобрать на байты килобайты магабайты и гигабайты
А какое максимальное число возможно при инт64?
markers (2004-11-10 10:10:00) [8]сейчас дебаг сделаю посмотрю
markers (2004-11-10 10:09:00) [9]жопа...... :( А какое там максимальное значение интегера? Такие числа редко будут встречатся, буду надеятся что не попадутся....
begin...end (2004-11-10 10:08:00) [10]markers © (10.11.04 9:47) [9]
Что-то я не пойму...
var
I, J, K: Int64;
begin
I := StrToInt64('250000000000000');
J := StrToInt64('999999999999999');
ShowMessage(IntToStr(J - I))
end
И у меня усё в порядке, никаких ошибок...
Реактор (2004-11-10 10:06:00) [11]У меня такая же проблема. Как я понял ничего не сделаешь. Надо свои процедуры писать и создавать новые типы. Это не сложная задача я такое уже делал для TP.
Хотя есть еще один выход. Я тут в инете нарыл калькулятор, который может обсчитывать числа до 200 знаков. Я попросил у хозяина исходник. Если даст, то ничего писать не надо. Просто адаптировать под себя и пользоваться.
markers (2004-11-10 10:01:00) [12]Подмогите, что сделать то..... :(
begin...end (2004-11-10 10:00:00) [13]KilkennyCat © (10.11.04 9:57) [14]
Да нет, это я ошибся, действительно не выходит...
KSergey (2004-11-10 09:59:00) [14]А может попробовать не в байтах считать? А в чем покрупнее?
KilkennyCat (2004-11-10 09:59:00) [15]
> markers © (10.11.04 09:58) [15]
я понял... вначале не понял.
markers (2004-11-10 09:58:00) [16]KilkennyCat © (10.11.04 9:56) [13]
конвентирование в стирнг для вывода остатка трафика
KilkennyCat (2004-11-10 09:57:00) [17]простите, ошибся. пойду спать.
KilkennyCat (2004-11-10 09:56:00) [18]2^63-1 разве выходит?
> IntToStr(Ostatok)
это что?
markers (2004-11-10 09:56:00) [19]Ну дык тогда сделать?
begin...end (2004-11-10 09:54:00) [20]markers © (10.11.04 9:47) [9]
> Матюгается что 250000000000000 неверное итегеровое
> значение....
Ну дык правильно, это выходит за пределы Int64.