Realtor

Точность вычислений

Recommended Posts

 

произвожу вычисления 310560000/64.7=4800000

а на сайте  при таких же действиях выдает 4852500

Будьте добры подскажите куда и где копать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Тут дело не в точности скорее. Подозреваю, что 64.7 передается как 64,7 . Так как запятая применима разделителем целой и дробной частей только в рукописном тексте, то это число для математический операций приводится к числовому виду в 64. Отсюда и отличный от ожидаемого результат.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
11 минуту назад, abushyk сказал:

что 64.7 передается как 64,7

Тут будет иметь смысл на такие, заведомо числовые поля поставить параметр rules. Например для тех, что могут быть дробными, поставить rules в виду Type:decimal  Для тех, что могут быть только целыми Type: int

Это не даст людям вводить шопопало, что они обычно и делают. Type:decimal будет заворачивать все неподходящие по формату значения, а если то-то задаст вместо точки запятую, то заменит ее на точку.

Это будет входная проверка. Не лишним будет прогнать базу по таким полям, что бы привести ее к "математическому" виду. Плюс, можно в саму логику расчета добавить приведение числа к нормальному виду, если не делали прогонку самой базы.

ПС. Установку rules следует использовать. по моему опыту ересью в числовых значениях грешат не только люди, но и довольно крупные фирмы. часто с выгрузок я засасывал в "числовых" полях значения вплоть до "сто квадратных метров" (что совершенно неделибельно) ))))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас