Aziz писал(а):
Затем через реестр котировки в текстовом формате из терминала ввожу в прогуAziz писал(а):
мне нужно именно преобразование real->string Aziz писал(а):
Нужно для того чтобы посчитать число знаков после точкиcode_31904.txt
Ответов: 16884
Рейтинг: 1239
|
|||
Вернусь ещё раз.
Aziz писал(а): Затем через реестр котировки в текстовом формате из терминала ввожу в прогуAziz писал(а): мне нужно именно преобразование real->string Aziz писал(а): Нужно для того чтобы посчитать число знаков после точкиcode_31904.txt |
|||
карма: 25 |
| ||
файлы: 1 | code_31904.txt [1.1KB] [210] |
Ответов: 1291
Рейтинг: 47
|
|||
Aziz писал(а): Просто компонент Grafer3 (см. раздел модов компонентов) делает выборку в массив real.Чтоб не размножать массивы и экономить память. Tad, спасибо, но это тоже работа со строками у тебя. А я пытался выудить из типа Real информацию которую он совершенно не носит и не обязан носить в себе - незначащие нули. Это глупо и было тупиковое мое заблуждение.. Вроде как сделать квадрат еще квадратнее. Отдыхать чаще нужно наверное. Ну а вы чего молчали? Господа программеры. Но спасибо Tad вывел меня из опасного ступора и я пошел окольным и легким, но как оказалось единственно верным путем - путем увеличения избыточности информации, путем создания строкового массива параллельно дробному, перестав искать черную кошку которой нет в черной комнате - сохранение незначащих нулей в типе Real. Но ничего хоть узнал побольше об этом типе, что например, он устарел уже и лучше использовать Double. У меня этих схем уже коллекция - вагон и тележка: )) Собрал в одну кучу:
|
|||
карма: 3 |
|
Ответов: 8930
Рейтинг: 823
|
|||
Aziz писал(а): Чтоб не размножать массивы и экономить памятьЗадача достойная, особенно при памяти измеряемой в Гигабайтах и диске в Терабайтах |
|||
карма: 19 |
|
Ответов: 1291
Рейтинг: 47
|
|||
Леонид, я понял что я перфекционист и мечтатель - даже в программировании..))
|
|||
карма: 3 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Aziz писал(а): Чтоб не размножать массивы и экономить память.Леонид писал(а): Задача достойная, особенно при памяти измеряемой в Гигабайтах Aziz, для экономии памяти (например- при 4-х знаках после запятой) real*10000 и храним в integer array. О программах, работающих с "живыми деньгами" Удивительно, но такое простое число, как 0,1, записывается в расширенном формате IEEE с некоторой погрешностью, пусть очень небольшой. Из-за этого представление с плавающей запятой оказывается несколько неудобным для программ, в которых сохраняется и выводится фиксированное число десятичных разрядов численных значений. Это относится и к программам, работающим с 'живыми" деньгами.
Для частичного решения этой проблемы в Object Pascal определены два формата с фиксированной запятой. Тип Comp (computational — вычислительный) содержит только целые числа в диапазоне от -263+1 до 263-1, что примерно соответствует диапазону от —9,2х1018 до 9,2х1018. При программировании операций с американской валютой разработчикам обычно приходится искать естественный способ записи денежных сумм, в котором целая часть числа определяет количество долларов, дробная — центов. Если такие значения записывать в переменные типа Comp, придется представлять их в виде целого числа центов. В этом случае следует умножать значение на 100 для обращения центов в доллары, а затем делить на 100, чтобы снова получить центы. Этих забот можно избежать, если воспользоваться типом Currency. В этом случае задачу выбора масштаба возьмет на себя компилятор. Физически значения Currency записываются в память того же объема, что и Comp, как целые числа, однако компилятор не забывает вовремя разделить значение на 10 000 (не на 100!) для его приведения в соответствие с денежным знаком и умножить на 10 000 перед записью в память. Это обеспечивает абсолютную точность в четыре десятичных знака после запятой. |
|||
карма: 25 |
|
Ответов: 1291
Рейтинг: 47
|
|||
Хорошая идея.) Тип string насколько мне известно - самый расточительный..
Да, именно этим мне эта задачка понравилась. Но не все так просто - 4-х знаков для Форекса недостаточно - давно уже появились брокеры с 5-значными котировками, более точными и выгодными для мелких торговцев-скальперов. Тут наверное Currency не поможет. |
|||
карма: 3 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 4 раз(а), последний 2025-01-10 20:47:55 |
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Aziz писал(а): давно уже появились брокеры с 5-значными котировками |
|||
карма: 25 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Tad писал(а): 0-ми приводищь к 5-ти знакам и умножаешь на 100 000А разве при умножении на 100 000, 0-ли не добавятся сами |
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Aziz, уже и меня запутал.
217.24.189.52, в HiAsm не всё работает. |
|||
карма: 25 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 4 раз(а), последний 2025-01-10 20:47:56 |
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
217.24.189.52, ну и что тут ссылки на printf делают?
|
|||
карма: 25 |
|
Ответов: 8930
Рейтинг: 823
|
|||
Aziz писал(а): ..4-х знаков для Форекса недостаточно..Aziz, ну и как Вы думаете, где будет убавляться? |
|||
карма: 19 |
|
Ответов: 1291
Рейтинг: 47
|
|||
[offtop]Леонид, тема в общем-то о другом, но если хотите содайте тему, обсудим. Моральное обоснование работы трейдера я специально изучал, хотя я такой же трейдер как и программист.)[/offtop]
|
|||
карма: 3 |
|