Точка после 0 при сравнении, зачем?

1. serg__k 79 28.12.16 16:29 Сейчас в теме
В УТ 11.1.10.199 вижу в запросе такой код:
КОГДА ДД.Количество > 0. ТОГДА ""Потребление""

Зачем нужна точка после 0? Кто может подсказать?
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
3. spacecraft 28.12.16 16:52 Сейчас в теме
(1) не боги горшки обжигает. Бональные опечатка. Работает только из за того, что воспринимает как 0.0, что равнозначно просто 0
5. serg__k 79 28.12.16 17:11 Сейчас в теме
(3) Встречается не единожды в коде, и не только в запросах; например:


Объект.Товары[Товар.НомерСтроки-1].СуммаНДС = ?(Раздел.СуммаНДС > 0., Товар.СуммаНДС, 0.);

Формат(Замер/1000., "ЧДЦ=3; ЧН=; ЧГ=")


В УТ 11.3 а же история...... Не похоже на опечатку
6. spacecraft 28.12.16 17:27 Сейчас в теме
(5) это маньяк программист, который пришел с других языков программирования, где есть жесткая типизация. Вот и ставит где может точки :)
Как такой вариант?
В любом случае в 1С нет жесткой типизации. И числа не делятся на целые и вещественные. И конструкция 0. равна просто 0
7. v3rter 28.12.16 17:27 Сейчас в теме
Разве что неявное указание, что 0 - значение не целое, а с фиксированной точкой.

Да, знаю, если суммировать больше количество значений с плавающей точкой, то накапливается погрешность в районе нескольких последних знаков и правильное сравнение с нулем будет выглядеть как сравнение числа (или его модуля) со значением допустимой погрешности, но в данном случае соглашусь с
(5)
поскольку 1С 8 оперирует данными с фиксированной точкой.
8. spacecraft 28.12.16 17:44 Сейчас в теме
(7)
а = 1/6;
а = а*6;
Сообщить(а);
Сообщить(а = 1);
Сообщить(а = 1.);

результат предсказуем?

С нулем не привожу, т.к. там всегда 0 будет.
9. serg__k 79 29.12.16 09:16 Сейчас в теме
(8)
а = 1/6;
а = а*6;
Сообщить(а);
Сообщить(а = 1);
Сообщить(а = 1.);


На выходе получаем:
1,000000000000000000000000002
Нет
Нет

Все таки не понятно использование точки, - не в теоретическом, а в практическом смысле.....
10. spacecraft 29.12.16 09:39 Сейчас в теме
(9) еще раз повторю, что в практическом смысле использование точки в таком виде для 1С нет никакого смысла.
Вот для С++ это имеет смысл. Причем очень важный.
Вот такой код на С++ :
int a = 100;
float b = a/1000.;

Чему будет равна переменная b?
А если убрать точку?
Это совсем два разных результата получается.

В 1С это всегда один результат.

Код типовых пишет не один программист. Возможно один из программистов хорошо знает С++. Думает по стандартам С++.
Итоговый фрагмент кода особо не проверяют досконально. Пропускают через систему тестирования. Тестирование проходит и хорошо.
serg__k; herfis; v3rter; +3 Ответить
2. alex-l19041 8 28.12.16 16:50 Сейчас в теме
а если убрать эту точку, что-то меняется ?
4. serg__k 79 28.12.16 17:01 Сейчас в теме
(2) Работает и с точкой, и без нее.
Конструктор запроса точку не видит.
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)