Точка после 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С
Москва
зарплата от 200 000 руб.
Полный день

Аналитик
Москва
зарплата от 150 000 руб. до 300 000 руб.
Полный день

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

Ведущий консультант аналитик 1С ERP, УХ
Ульяновск
зарплата от 120 000 руб.
Полный день

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