Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по Embarcadero RAD Studio XE5-XE8,10.x(Seattle, Berl

Автор: SolidSnakeRU
Дата сообщения: 05.03.2015 12:15

Цитата:
Только в делфи XE6, обе строки возвращают 1.24.

"Только" тут не в том смысле. Я знаю что в ХЕ6 считает так.
Как в других версиях - не знаю, но очевидно, может быть разница.
Автор: ZloyBrawler
Дата сообщения: 05.03.2015 12:59
Mic777

Цитата:
а копеечку куда заныкали ???

Как куда? В карман!

Никуда эту 0.01 не деть, тут просто пр правилам математики поровну на всех не поделить ибо каждому приходится 3.33(3) рубля
надеюсь понимаете (3) - это три в периоде 3.333333333333333333333 и в бесконечность
нет монеток меньше 1 копейки, не разделить ее по братски.

В учетных системах все делает просто, погрешность, а в данном случае 0.01 кидается на наибольшую из сумм (вес при распределении), а в данном случае на любую. Можно и не выдать вообще эту копейку закрысив в системе, но тогда она может повиснуть и висеть еще долго пока не намазолит глаза до такой степени, что ее куда нить да не спишут в доходы не производственного характера и тогда она не достанется никому.

SuPriTo

Цитата:
Для денег этого мало - т. к. сейчас уже минимум необходимо 5 знаков после запятой

Это еще наклепа не подскажите? Усредненный курс валюты хранить? Такое не хранят...

Автор: Mic777
Дата сообщения: 05.03.2015 13:04
ZloyBrawler
Так а я о чем - решается для конкретной задачи.
А правила округления и тип хранения вторичны.
Автор: SuPriTo
Дата сообщения: 05.03.2015 13:12
ZloyBrawler

Цитата:
Это еще наклепа не подскажите? Усредненный курс валюты хранить? Такое не хранят...

Хранят вполне. Цена акций ВТБ, валюта и наверное еще какие-то иструменты на вскидку больше не вспомню - 5 знаков после запятой, биткойн даже более 5 знаков.
Автор: ZloyBrawler
Дата сообщения: 05.03.2015 14:10
SuPriTo
Можно хранить цену акций ВТБ хоть 100 знаком после запятой, но это не отменит тот факт, что если использовать еще и 101 знак, то блин можно еще точнее ёмаё расчеты делать!!!
Вопрос, а нужно ли?
ИМХО
- курсы валют достаточной 4 знака после запятой, а недостаточно, то есть понятие кратность валюты
- цены чего либо 2 знака после запятой

Даже на уровне законодательства идет война с копейками, то платим налоги до копеек, то округляем до рублей, то снова давайте до копеек. Вы копейку потеряли! Переделайте документы! (Переделка документов - это затраты, десятки/сотни рублей. Логики нет!)
Автор: SuPriTo
Дата сообщения: 05.03.2015 16:11
ZloyBrawler
Вы не понимаете механику биржевой торговли. Есть такое понятие как шаг цены - это минимальный шаг, с которым изменяется инструмент. Это кол-во знаков после запятой, если шаг цены от 0 до 1. С таким шагом цены данные располагаются в стакане и на ленте. Нет необходимости выводить цену с меньшим или большим шагом - это бред просто. Все расчеты развалятся. Если использовать меньший шаг, например 0,0001 вместо 0,00001, всегда будешь приобретать инструмент по более худшей цене. А это прямые убытки.

Цитата:
- курсы валют достаточной 4 знака после запятой, а недостаточно, то есть понятие кратность валюты
- цены чего либо 2 знака после запятой

В биржевой торговле - это большая ошибка.
Не стоит путать биржевую торговлю и бухгалтерию.
Автор: krapotkin
Дата сообщения: 05.03.2015 21:33
SuPriTo
про RTTI-сериализацию
здесь хороший пример
http://www.youtube.com/watch?v=e6IKO8so-Is
и здесь
https://code.google.com/p/x-superobject/wiki/Sample
Автор: xpin2013
Дата сообщения: 07.03.2015 11:09
krapotkin
Уважаемый.) Я хочу задать Вам вопрос, так как Вы неплохо разбираетесь в этих вещах. Вопрос касается использованию MVC технологий в применении к Delphi. Не кажется ли Вам, что "Активная модель MVC" была бы лучше. Не хватает для её реализации только делегатов, но модель могла бы быть гораздо эффективнее. MVC мне понравился с точки зрения организации транзакций.
Автор: dred2k
Дата сообщения: 08.03.2015 15:42
XE7 U1 глючит вот по этому сценарию (попытка откомпилить любой проект в среде билдера).
Кто-нить сталкивался ?
Автор: kaz_av
Дата сообщения: 08.03.2015 16:52
dred2k
Проверил на XE7 U1 (XP SP3). Не воспроизводится.
Автор: vez
Дата сообщения: 08.03.2015 17:25

Цитата:
XE7 U1 глючит вот по этому сценарию (попытка откомпилить любой проект в среде билдера).

Сталкивался конечно, эта проблема существует начиная по крайней мере с XE5 (а может быть и раньше, уже не помню), после некоторого времени работы над проектами она возникает, может быть всё нормально и час, и 10 часов, иногда не встречается неделями, лечится только перезапуском среды. Связано вроде с невозможностью выделить память.
Автор: dred2k
Дата сообщения: 08.03.2015 23:12
kaz_av
Что у тебя не воспроизвелось - это хорошо.
Гораздо хуже вот это:

Код:
Resolution Entries for Report #129280

Resolution    Full Name    Date Changed    Build
Cannot Reproduce    Tomohiro Takahashi    12/9/2014 3:34:53 AM    
Автор: kaz_av
Дата сообщения: 09.03.2015 00:52
dred2k

Цитата:
билдер понадобился по случаю

Попробуй поставить на чистую виртуалку, может и решишь свою проблему.
Автор: Frodo_Torbins
Дата сообщения: 09.03.2015 01:08
Недавно в гугл плюсе задавали вопрос, как отключить защиту студии, чтобы включить в ее бинарнике флаг large address aware. В коментах Марку отписался, что это не имеет смысла, потому что в студии много кода не умеющего работать с адресами выше 2ГБ. Это большая проблема, и они мол работают над фиксом. К сожалению не смог сейчас найти этот пост, может его уже удалили.
Автор: dred2k
Дата сообщения: 09.03.2015 01:31
kaz_av

Цитата:
Попробуй поставить на чистую виртуалку, может и решишь свою проблему.

Ну, подобные решения очевидны.
Интересует, есть ли способы реанимации.
К сожалению, пока встречал в сети только решения, связанные с переустановкой (причем баг потом у некоторых "возвращался").

Добавлено:
Frodo_Torbins

Цитата:
много кода не умеющего работать с адресами выше 2ГБ

Хм, интересно. В данном случае крэш происходит в процессе bcc32, который студия запускает при компиляции. Про детали их взаимодействия пока не в курсе, но оно определенно имеет место, и с этим что-то происходит... (хоть пока и не пробовал, да и в данный момент нет возможности, но предположу - сам по себе bcc32 с компиляцией справится).
Автор: Frodo_Torbins
Дата сообщения: 09.03.2015 10:15
dred2k
Чтобы хоть компиляция нормально работала, в делфи пару версий назад ввели опцию "всегда запускать компилятор в отдельном процессе". Для билдера такой нету?
Автор: dred2k
Дата сообщения: 09.03.2015 10:41
Frodo_Torbins
Это которая Background Compilation (запускает нитку компиляции в фоне, разрешая продолжить работу в IDE) ?
Все то же - ошибка.
Автор: vez
Дата сообщения: 09.03.2015 10:52

Цитата:
Недавно в гугл плюсе задавали вопрос, как отключить защиту студии, чтобы включить в ее бинарнике флаг large address aware.

В следующей версии обещали сделать large model. Скорее всего осенью.
Автор: krapotkin
Дата сообщения: 09.03.2015 19:00
xpin2013
вот ничего не скажу про активную модель
но делегаты в шарпе имхо в совпадают с описанием типа в Delphi
пример


Код: TNotifyEvent = procedure (Sender:TObject) of object;

TForm1 = class(TForm)
...
p1,p2:TNotifyEvent;
...
end

var
form1:TForm1;
form2:TForm2;

procedure TForm1.FormCreate(sender:TObject);
begin
form2:=TForm2.create(Application);
p1:=form2.FormCreate;
p2:=form2.FormDestroy;
end;

procedure TForm1.ButtonClick(sender:TObject);
begin
if time>encodeTime(22,00,00) then
p1(NIL)
else
p2(NIL);
end;
Автор: SuPriTo
Дата сообщения: 09.03.2015 21:14
krapotkin
В шарпе делегаты можно несколько функций повесить, которые будут вызываться последовательно.
Автор: NeoAnomaly
Дата сообщения: 09.03.2015 23:49
SuPriTo
Из коробки конечно этого нет, но в новых дельфях(а ведь тема про них) можно "завелосипедить" и мульти ивенты(сохраняя при этом возможность юзать их как делегаты). Но опять же, зачем, ни разу не испытывал в этом необходимости? Единственное, что сложновато будет реализовать асинхронный вызов.
Автор: Alexey_Gawrilow
Дата сообщения: 10.03.2015 02:50
NeoAnomaly
Для TNotifyEvent делал лет пятнадцать назад.
Observer
Автор: Dukekz
Дата сообщения: 11.03.2015 13:07
dred2k

Цитата:
XE7 U1 глючит вот по этому сценарию (попытка откомпилить любой проект в среде билдера).
Кто-нить сталкивался ?

Наталкивался несколько раз, причем на компе, где кроме XE7 еще и XE5 и еще куча всякого наустановлено, лечилось банальным перезапуском и очисткой/пересборкой проекта. После прекращения параллельного использования XE5 больше вроде не появлялось (тьфу*3).
На ноуте, где установлен только XE7U1 и компоненты не проявлялось по моему ни разу.
Автор: xpin2013
Дата сообщения: 12.03.2015 09:43
NeoAnomaly
В предыдущем моём посте (в этой ветке/топике) посте про MVC можно увидеть то что я "завелосипедил".

Цитата:
Но опять же, зачем, ни разу не испытывал в этом необходимости? Единственное, что сложновато будет реализовать асинхронный вызов.

Не надо асинхронного. Допустим у меня приложение MDI и гораздо удобнее на событие MainMDI "подписывать" MDI ChildrenForm. То есть необходимость в них бывает однозначно. Просто многие Дельфи разработчики "по умолчанию" не принимают такую возможность в свой расчёт при разработке архитектуры ПО.

Добавлено:
krapotkin
NeoAnomaly
DB.TDataSource - это и есть реализация "подписки на события базы данных".
Автор: qwertEHOK
Дата сообщения: 12.03.2015 12:44
подскажите пожалуйста по Firedac

делаю запрос к MS SQL
q.sql.text:='';
q.Open
showmessage(q.Fields[3].asString);

в поле хранится дата\время
получаю такое
12.03.2015 12:29:49

но если время до часа ночи, то получаю такое
12.03.2015 0:29:49

Так как потом эти данные хранятся в SQLite, то при их получении время с одним 0 просто обрезается.

подскажите - можно исправить не проверяя время в каждой строке?
Автор: landy
Дата сообщения: 12.03.2015 12:50
qwertEHOK, нужно хранить дату не как строку, а в числовом формате:

Код: q.Fields[3].asDateTime
Автор: qwertEHOK
Дата сообщения: 12.03.2015 13:02
не помогает
потом я делаю INSERT в другую БД и мне эта дата нужна как строка
когда я оборачиваю DateToSTR(q.Fields[3].asDateTime) - в SQLite она записывается с одним нулем
Автор: ziesto
Дата сообщения: 12.03.2015 13:04

Цитата:
XE7 U1 глючит вот по этому сценарию (попытка откомпилить любой проект в среде билдера).
Кто-нить сталкивался ?

У меня тоже не воспроизводится
Автор: landy
Дата сообщения: 12.03.2015 14:49

Цитата:
мне эта дата нужна как строка

Тогда используй вызов с явной спецификацией формата:


Код: FormatDateTime('dd.mm.yyyy hh:nn:ss.zzz', dt)
Автор: qwertEHOK
Дата сообщения: 12.03.2015 15:23
landy
да, спасибо, так и делаю - ноль по прежнему один, но хоть выводится правильно

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129

Предыдущая тема: Отмена встречи в Outlook из Excel VBA


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.