Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
4-1214376707
SVD
2008-06-25 10:51
2009.08.16
Характеристики сетевых адаптеров через WinPCap


2-1245231551
вопрос
2009-06-17 13:39
2009.08.16
увеличение дин.массива


15-1245096963
Игорь Шевченко
2009-06-16 00:16
2009.08.16
По поводу правоты/неправоты


15-1242118246
Германн
2009-05-12 12:50
2009.08.16
ООО Кредитэкспресс


2-1244520609
Чипырик
2009-06-09 08:10
2009.08.16
Слетает база и портится индекс





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский