Форум: "Основная";
Текущий архив: 2009.08.16;
Скачать: [xml.tar.bz2];
Вниз20-значная цифра Найти похожие ветки
← →
aidyn (2008-05-26 13:10) [0]у меня есть строковая переменная, состоящая из 20 цифр... с этим значением мне надо провести арифметические операции, но вот столкнулся с проблемой конвертации... Integer такое огромное значение не принимает, пробовал ставить Extended, но тогда при конвертации StrToFloat почему-то получается 0...
Подскажите что делать?
← →
Stas © (2008-05-26 13:28) [1]Нужна спец. библиотека, типа как эта http://gmplib.org/
незнаю к Delphi можно подключить или нет
← →
Anatoly Podgoretsky © (2008-05-26 13:34) [2]Если аппетиты снизишь до 19 знаков, то Int64 дает 9 223 372 036 854 775 807
← →
aidyn (2008-05-26 15:50) [3]Вот именно, что аппетиты снизить не могу :), наоборот после некоторых операций цифра должна увеличиться до 22 знаков.
← →
Dimka Maslov © (2008-05-26 15:59) [4]Школа. 2 класс. Сложение, вычитание, умножение и деление в столбик. При желании можно выполнять арифметические операции над строковыми представлениями чисел любой длины.
← →
Denis__ © (2008-05-26 19:37) [5]
> Dimka Maslov © (26.05.08 15:59) [4]
Полностью согласен. И делается не так уж и сложно!
← →
tesseract © (2008-05-26 21:46) [6]
> арифметические операции над строковыми представлениями
> чисел любой длины.
Numeric, таки работает, имееться в виду ?
← →
aidyn (2008-05-27 07:42) [7]
> При желании можно выполнять арифметические операции над
> строковыми представлениями чисел любой длины.
А как прводить арифметические операции над строков. переменными? подскажите плиз
← →
Gadenysh (2008-05-27 08:16) [8]приводить посимвольно к integer (5 пишем один в уме)
как сказали, второй класс
← →
Рамиль © (2008-05-27 10:04) [9]Может лучше массивом из байт, а не строками. Зачем тратить время на конвертацию?
← →
Style © (2008-05-27 11:31) [10]а че там конвертировать то
ord(data[pos])-$30
← →
DiamondShark © (2008-05-27 11:32) [11]
> Может лучше массивом из байт, а не строками. Зачем тратить
> время на конвертацию?
Какое время? Ничего никуда не конвертируется.
Символы цифр -- это такие же байты как любые другие.
← →
Anatoly Podgoretsky © (2008-05-27 11:38) [12]Только $31 и $1 не одно и тоже, и тем более если если эти байты Integer, а не BCD
← →
Style © (2008-05-27 11:46) [13]
> Только $31 и $1 не одно и тоже, и тем более если если эти
> байты Integer, а не BCD
естесно, имеется ввиду преобразование одного символа из строки в byte, вернее даже в type TDigit = 0..9
← →
Slym © (2008-05-28 04:34) [14]FGInt
← →
KSergey © (2008-05-28 08:05) [15]> Рамиль © (27.05.08 10:04) [9]
> Может лучше массивом из байт, а не строками. Зачем тратить
> время на конвертацию?
По-моему, эффективнее будет хранить в виде рекордов из интов и работать в частями рекорда как с целыми числами (расширяя временно до int64, например, не забывая при этом учитывать переносы между частями. Это много быстрее будет, я думаю, если скорость хоть сколько-нибудь важна, конечно.
Хотя, понятно, для этого уже написаны готоыве библиотеки :)
← →
inoremap (2008-05-28 09:44) [16]http://kladovka.net.ru/index.cgi?pid=list&rid=459
← →
Ega23 © (2008-05-28 09:55) [17]FGInt, и нефиг велосипед изобретать...
← →
Romkin © (2008-05-28 11:59) [18]Вот почему никто не вспоминает о TBCD?
Ведь есть, 31 знак.
var
A, B: Variant;
begin
A := VarFMTBcdCreate("12555645345",30,0);
B := VarFMTBcdCreate("234234423423434352345345",30,0);
B := B + A;
ShowMessage(B.AsString);
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2009.08.16;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.009 c