Pull to refresh

Comments 26

UFO just landed and posted this here
Я скомпоновал текст неудачно: между вопросом и ответом большая картинка. Да, это действительно так, но понятно же, что для денег не надо использовать ни float, ни double с центами-копейками в дробной части, а других сценариев мне так сходу придумать не удалось.
UFO just landed and posted this here

Хм, но почему бы просто не считать все позиции и сумму в копейках, то есть складывать и вычитать integer? А уже при выводе обрабатывать 4450 как 44 р 50 коп.

UFO just landed and posted this here
Купили 10 тонн рыбы по цене сто тысяч рублей за тонну. НДС 20% от суммы, то есть 1/6. Это будет 166 666 рублей 66 копеек. А вот теперь распределите эту рыбу по килограммам и граммам, чтобы сумма НДС сошлась. Удастся? :-) Так что минимум сотые копеекй нужны.
А с чем должно сходиться?

Я давно не брал в руки шашек, но… НДС с покупки сходиться ни с чем не должен, НДС продаж считается как сумма НДС (округленного до копейки) с каждой продажи
не знаю, как сейчас, но почти 20 лет назад способ подсчета НДС разнился от налоговой к налоговой. Варианты были:
  • НДС от общей суммы проданного
  • сумма НДС от каждой продажи с округлением общей суммы
  • сумма НДС от каждой продажи с округлением НДС каждой продажи

Ну в общем лучше бы они все три сходились. Ибо если был выбран вариант не с самым большим налогом, но налоговая иногда начисляла штрафы.

Звучит как «давайте при определении в каждый чек по 10 рублей прибавлять, что бы налоговая не того...».


Каждая продажа типа сопровождаться товарным чекам, в котором указана сумма НДС с точностью до копеек. Не понятно, на каком основании можно получать сумму из каких то других источников, чем сложение этой «колонки»? Я не то, что бы сомневаюсь в «талантах» на местах...

Товарный чек при каждой продаже в ларьке? Вы случайно не путаете его с кассовыми чеком? Товарные чеки выдают крупные сети самообслуживания, он получается как побочный продукт обработки штрих-кодов. У всех остальных товарники выписываются лишь по потребности, и вручную.

Вот вам типичный кассовый чек. Найдите там НДС
image

А вот товарный чек. Тоже найдите НДС
image

10 тонн рыбы в ларьке? Ларек на ОСНО? С автоматизацией? )

Не, не путаю. Просто таких чеков давно не видел. На рынках рыбу вообще без чеков, а в магазинах (даже без самообслуживния) давно «полноформатные».

Впрочем, с 1 февраля «онлайн кассы» и обязательно наличие НДС прям в фискальнике.
Норма Минздрава — 22 кг рыбы в год. Так что 10 тонн — это примерно на 20 тысяч человек на месяц. Ну или городу в 600 тысяч на день. Упрощенки у нас с 2002 года, так что 20 лет назад её просто не было.

А магазинов, работающих без товарных чеков — навалом. Что в Питере, что в Москве почти все «24 часа» — без товарников.
Не, я верю, что полно. Я по ним просто не хожу.

Давайте так: Магазин может к каждой покупке выписывать чек с НДС, и сумма по этим документам должна сходиться с требованиями налоговой.
Беда в том, что вес может не сойтись. И как налоговая отнесется к тому. что продали на пару килограмм больше, чем закупили — непонятно.
Нормально должна. Пересорт — бытовая вещь (штрих-коды, например, 1:10000 читаются с ошибкой). Ну то есть, видимо, инвентаризация с актами нужна, но это совсем другая история.

Хотя проще 2 кг рыбы домой унести.
фискальный чек домой не унесешь

При хранении мороженная рыба теряет в массе. Это зовется "естественная убыль". Та самая "утечка, усушка, утряска". Соответсвенно за счет этого масса уменьшиться значительно сильнее, чем ошибка округления.


А вот отрицательная естественная убыль — это хороший повод поинтересоваться, что на самом деле они там под видом рыбы продают.

У типовых рычажных весов точность порядка 5 грамм на килограмм. То есть максимальное отклонение — 50 килограмм на 10 тонн, а матожидание — порядка 7 килограмм в ту или иную сторону. :-). Реальная точность работы продавца в ларьке — раз в 10 хуже. То есть грамм 50, если не 100. Причем в свою пользу, разумеется. :-)

Так что на 10 тонн можно и полтонны отклонения получить. :-)
Нету в кассовом аппарате float'а. Более того, в кассовом аппрате рублей-то нет.
Чтобы не ходить по этим граблям, достаточно считать в копейках. В целых копейках.
UFO just landed and posted this here

Есть еще decimal, для которого подобное округление нужно. Видимо для общности интерфейса решили сделать одинаковые методы.

Похоже, это самое правдоподобное объяснение. С учётом ветки комментариев выше, из всего этого на сцене нормальная такая дискуссия могла бы получиться.
А что делать, если (реальная история 20летней давности) рыба продается килограммами, а цена — за тонну? И НДС считается с минимум с сотыми долями копейки. Так что fixed лучше, чем float, а вот расчет в целых копейках иногда не годится.
Это довольно странно. Он говорит, что проверял на 64-битной системе. Но 64-битные приложения должны использовать SSE2, а не FPU. Разве CWR влияет на SSE2? Или .NET даже в 64-битном режиме продолжает FPU использовать?

P.S. А никто не подскажет, для 1С 8.3 какое значение CWR по умолчанию? ;-)
Да, х64 использует SSE, только вот как это поможет решить проблему, связанную с самим типом данных?..
Я просто этот вопрос как-то не изучал, но разве команды sse2 подчиняются CWR и инициируют исключение? Я просто недавно немного возился с этим и заметил, что только в 32-битной программе у меня получается управлять режимом исключение/NaN, в 64 битах я всегда получел NaN на операциях с NaN…
Sign up to leave a comment.