Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
nojavaDima TПоявилась мысль как сделать сравнимым double - округлять по окончанию расчета до необходимого количества знаков, но не более 15-ти, т.е. 14 после запятой. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Результат Код: plaintext 1. 2. 3. т.е. надо сделать тип, который кроме значения содержит точность, например при умножении точности складываются, при делении устанавливается максимально возможная для результата и т.д. Тогда можно проверять на равенство, т.е. это будет полноценный числовой тип. Да и NULL там есть, в смысле NaN. Или как минимальный вариант: просто сделать функцию округления до заданного количества десятичных знаков и функцию сравнения, которая при проверке равенства округлит очень близкие значения. Другой вопрос как затестить, 10^15 уже многовато для перебора, а тут еще варианты с разным количеством знаков после точки 14.1, 13.2, 12.3 и т.д. :) у меня на Delphi еще в 99-м году была написана библиотека, с чудными функциями round2(), round100() фактически да, так и было, любые попытки вычислить sum := round2(price * amount); причем round2 был написан очень хитро, с замглавбуха делали отдельное регрессионное тестирование, перебрав практически все числа. просто чтоб копейки сходились. и все равно пришлось прикручивать еще и финальную коррекцию на сумму счета. в общем трах был незабываемый. что-то вроде этого Код: pascal 1. 2. 3. 4. 5. 6. В Delphi нет функций ceil и floor? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2016, 01:51 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Dima TСклоняюсь к мысли вести учет в копейках. int32 для цен, int64 для сумм. Как вариант может не экономить и int64 для цен тоже. Есть нагрузка из-за форматирования на входе-выходе, но тут надо потестить. У меня самодельные ToString()/FromString(). цена может быть в сотых, и даже миллионных долях копеек, запросто. классический случай - это счет фактура на ранее произведенную предоплату. цена вычисляется там обратным путем - делится общая сумма на общее количество ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2016, 10:52 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
SashaMercurynojavaпропущено... :) у меня на Delphi еще в 99-м году была написана библиотека, с чудными функциями round2(), round100() фактически да, так и было, любые попытки вычислить sum := round2(price * amount); причем round2 был написан очень хитро, с замглавбуха делали отдельное регрессионное тестирование, перебрав практически все числа. просто чтоб копейки сходились. и все равно пришлось прикручивать еще и финальную коррекцию на сумму счета. в общем трах был незабываемый. что-то вроде этого Код: pascal 1. 2. 3. 4. 5. 6. В Delphi нет функций ceil и floor? есть, а толку, они считают "неверно" http://docwiki.embarcadero.com/Libraries/Seattle/en/System.Math.Floor http://docwiki.embarcadero.com/Libraries/Seattle/en/System.Math.Ceil бухгалтерам нужно строго half round up округление ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2016, 10:58 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Различные виды округления в Java (BigDecimal) BigDecimalHALF_UPHALF_DOWNHALF_EVENFLOORCEILING10.00110.0010.0010.0010.0010.0110.00210.0010.0010.0010.0010.0110.00310.0010.0010.0010.0010.0110.00410.0010.0010.0010.0010.0110.00510.0110.0010.0010.0010.0110.00610.0110.0110.0110.0010.0110.00710.0110.0110.0110.0010.0110.00810.0110.0110.0110.0010.0110.00910.0110.0110.0110.0010.0110.01010.0110.0110.0110.0110.0110.01110.0110.0110.0110.0110.0210.01210.0110.0110.0110.0110.0210.01310.0110.0110.0110.0110.0210.01410.0110.0110.0110.0110.0210.01510.0210.0110.0210.0110.0210.01610.0210.0210.0210.0110.0210.01710.0210.0210.0210.0110.0210.01810.0210.0210.0210.0110.0210.01910.0210.0210.0210.0110.0210.02010.0210.0210.0210.0210.02 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2016, 11:32 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2016, 11:33 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
nojavaцена может быть в сотых, и даже миллионных долях копеек, запросто. классический случай - это счет фактура на ранее произведенную предоплату. цена вычисляется там обратным путем - делится общая сумма на общее количество Вообще-то для этого придуман счет на оплату где изначально цена и количество прописываются. Так что это не классический случай, а обычный бардак. Но можно и по другому подогнать сумму. Несколькими ценами. Например сумма 3 коп, отгрузили 2 шт. Пишем 1 шт * 1 коп + 1 шт. * 2 коп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2016, 11:50 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Dima Tnojavaцена может быть в сотых, и даже миллионных долях копеек, запросто. классический случай - это счет фактура на ранее произведенную предоплату. цена вычисляется там обратным путем - делится общая сумма на общее количество Вообще-то для этого придуман счет на оплату где изначально цена и количество прописываются. Так что это не классический случай, а обычный бардак. Но можно и по другому подогнать сумму. Несколькими ценами. Например сумма 3 коп, отгрузили 2 шт. Пишем 1 шт * 1 коп + 1 шт. * 2 коп. тоже мне теоретик. этот счет на оплату могут оплатить и частично, и разными частями, или вообще заплатить больше, чем было выставлено. бардак не бардак, а реалии жизни - и всем плевать на твои представления о порядке, ты должен отразить в базе данных свершившившуюся бизнес-операцию, а не теоретизировать. а вот насчет можно - можно сходить в кабинет главбуху, там тебе популярно пояснят, что можно, а что нельзя :) с занесением в переменную часть ЗП. или вынесением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2016, 12:49 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
nojavaбардак не бардак, а реалии жизни У меня другие реалии, такого бардака нет и не ожидается. А насчет "главбух объяснит" - сочувствую тебе и тем кто этот товар будет приходовать и учитывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2016, 13:17 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Dima TУ меня другие реалии, такого бардака нет и не ожидается. теоретик ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2016, 14:24 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Изопропилтеоретик Не, практик, успешный убалтыватель главбухов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2016, 14:48 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Dima TИзопропилтеоретик Не, практик, успешный убалтыватель главбухов который в своём уютном гнёздышке не знает, что такое суммовая разница,недопоставка, частичная отгрузка, пересорт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2016, 15:51 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
ИзопропилDima Tпропущено... Не, практик, успешный убалтыватель главбухов который в своём уютном гнёздышке не знает, что такое суммовая разница,недопоставка, частичная отгрузка, пересорт Это решаемые проблемы: допоставка, переделка документов, возврат. Про суммовую разницу не понял о чем речь. Ты удивишься, но я даже знаю о такой багофиче ПБУ как учет НДС на сумму в опте и на штуку в рознице, видел 3 типа кульбитов свести арифметику в счет-фактуре. Про дробление упаковок знаю, когда надо продать 1/3 упаковки ценой 30 р и чтобы вышло в чеке ровно 10 р. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2016, 16:03 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Вы щас спорите не об округлении а о ролях и отвественностях на проекте. Это офтопик. Давайте не будем. Каждый из вас по своему прав. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2016, 16:50 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
maytonВы щас спорите не об округлении а о ролях и отвественностях на проекте. Это офтопик. Давайте не будем. Каждый из вас по своему прав. Опередил. Можно закончу и больше не буду. Суть проблемы с копейками в том что никак законодательно не урегулированы правила округления (да и расчета тоже) в обязательных документах. В законодательстве такая мелочь просто не упоминается, а всякие разъяснения по этому поводу от контролирующих органов могут быть проигнорированы судом. Например есть законодательное ограничение наценки на конкретный товар 20%. Купил за 12,34 р наценил 20% получил 14.808. Сделав цену 14.81 можешь запросто попасть под раздачу т.к. 14.808 < 14.81. Тут хотя бы боле-мене очевидно. Сложнее если какому-нибудь "главбуху"-перестраховщику шибанет в голову и он прикажет - сделай так чтобы сумма с НДС была равна сумме колонки и сумме без НДС * ставку (предположим что все товары по одной ставке). Вот вам на ровном месте 4 знака после запятой в сумме НДС по строке. Только копейки все-равно вылезут, пусть в конкретном документе все идеально, т.к. итого с ндс все равно округлять надо, т.к. ни один банк не проведет платеж на 100.1234 р. А в итоге эти округления родят расхождение в отчете по НДС за период, где будет сумма без НДС * ставку НДС != сумма НДС. Поэтому два пути решения проблемы: 1. тупо сказать "есть" пойти расширять разрядность после запятой, создавая проблемы стороне которая эти документы будет приходовать. 2. убедить что это не поможет, и поискать совместно устраивающее всех решение. Не зря пишут в умных книжках что ИТ должны подчиняться непосредственно высшему руководству предприятия, а не зависеть о каких-то отделов предприятия. Главбух не должен быть выше начальника ИТ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2016, 17:36 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Прошу прощения коллеги. На меня нахлынули размышления. Не знаю совсем-ли это по сабж. Смотрел вторую часть научно популярного видео о масштабах вселенной. Впечатлило. Задумался о измеряемых величинах. [spoiler] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 00:00 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
maytonПрошу прощения коллеги. На меня нахлынули размышления. Не знаю совсем-ли это по сабж. Смотрел вторую часть научно популярного видео о масштабах вселенной. Впечатлило. Задумался о измеряемых величинах. [spoiler] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 00:24 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Вася УткинКогда вся известная вселенная это от 10^-16 метра до 10^24 метра, т.е. всего 40 десятичных порядков. Ну не совсем. Размер вселенной оценивается в 46 млрд световых лет == 43e25 м Минимальный размер которым может оперировать физика на данный момент, планковский - 1.5e-35 м Т.е. порядков 70. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 00:34 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyТ.е. порядков 70. Упс, рука дрогнула - 60 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 00:36 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 01:26 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Соотношение диаметра обозримой вселенной 10^24 к размеру нейтрино 10^-24 будет равно 10^48. Это больше чем диапазон float (32bit). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 01:29 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyВася УткинКогда вся известная вселенная это от 10^-16 метра до 10^24 метра, т.е. всего 40 десятичных порядков. Ну не совсем. Размер вселенной оценивается в 46 млрд световых лет == 43e 25 м Минимальный размер которым может оперировать физика на данный момент, планковский - 1.5e -35 м Т.е. порядков 70. Anatoly MoskovskyAnatoly MoskovskyТ.е. порядков 70. Упс, рука дрогнула - 60 Но даже так от 10^-35 до 10^26 вписывается в экспоненту в 8-bit из float от 10^-38 до 10^38. Чего им в double экспоненту захотелось в 8 раз увеличивать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 01:36 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Я еще дальше покрутил флеш-ролик. Ну вобщем на уровне размеров 10^-35 м. физики различают такие вещи как планковская длина, кварковая пена e.t.c. Поскольку я не физик то не знаю как часто они меряют или сравнивают эти величины. Включать ли такое измерение в нашу оценку или нет - ХЗ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 10:49 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
Вася УткинAnatoly Moskovskyпропущено... Ну не совсем. Размер вселенной оценивается в 46 млрд световых лет == 43e 25 м Минимальный размер которым может оперировать физика на данный момент, планковский - 1.5e -35 м Т.е. порядков 70. Anatoly Moskovskyпропущено... Упс, рука дрогнула - 60 Но даже так от 10^-35 до 10^26 вписывается в экспоненту в 8-bit из float от 10^-38 до 10^38. Чего им в double экспоненту захотелось в 8 раз увеличивать... ой да ладно, вон в ipv6 не особо парясь вписали 128 бит на адрес, что достаточно для адресации каждого кубического миллиметра во Вселенной. на кой? и они как-то же обосновали свое "решение" мир ит захватили шарлатаны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 12:17 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
nojava не особо парясь вписали 128 бит на адрес, что достаточно для адресации каждого кубического миллиметра во Вселенной. на кой? и они как-то же обосновали свое "решение" мир ит захватили шарлатаны Меня тоже очень сильно удивило подобное расточительство. Казалось-бы увеличь сетку с 32 бит до 64 и получай себе избыточную разрядность для всех устройств планеты Земля. А там когда полетим в космос или султан сдохнет или протокол. Но КМК Ipv6 будет не очень хорошо распределять сетки и диапазоны. Или большая часть разрядности будет бездарно профукана в угоду бюрократизму и нежеланию думать о том как грамотно распределять. Тема интересная (особенно для сетевиков-сисадминов) и я-бы даже поднял отдельный топик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 14:55 |
|
||
|
inline extern из библиотеки, как правильно декларировать-имплементировать?
|
|||
|---|---|---|---|
|
#18+
maytonМеня тоже очень сильно удивило подобное расточительство. Казалось-бы увеличь сетку с 32 бит до 64 и получай себе избыточную разрядность для всех устройств планеты Земля. А там когда полетим в космос или султан сдохнет или протокол.Но КМК Ipv6 будет не очень хорошо распределять сетки и диапазоны. Или большая часть разрядности будет бездарно профукана в угоду бюрократизму и нежеланию думать о том как грамотно распределять. Да все там продумано. 64 бита отведено на автоматическую генерацию адреса (например из физического адреса), а остальные 64 - это и есть расширение адресного пространства. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 15:02 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39288624&tid=2018218]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
318ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 16ms |
| total: | 431ms |

| 0 / 0 |
