Основной раздел > Ошибки
Ошибка при вызове вункции ROUND()
(1/1)
TNT:
Кусок кода:
--- Code: ---print($n)
$n=ROUND($n)+1
--- End code ---
Выводит значение $n=94.33333333333
Vint:
--- Quote from: TNT on November 13, 2023, 03:53:05 PM ---
--- End quote ---
А что должно быть? Round принимает два параметра, где второй?
--- Code: (clickermann) ---$n = ROUND($n, 0)
--- End code ---
TNT:
Если бы ROUND() всегда требовал второй параметр, то вопрос бы не возник, но в подавляющем большинстве случаев он прекрасно работает без него.
Vint:
--- Quote from: TNT on November 14, 2023, 08:25:13 PM ---Если бы ROUND() всегда требовал второй параметр, то вопрос бы не возник, но в подавляющем большинстве случаев он прекрасно работает без него.
--- End quote ---
В этом опасность всех недокументированных свойств. В справке чётко написано
--- Quote ---Синтаксис
ROUND (arg, prec)
Параметры
arg - число
prec - точность
--- End quote ---
Два! параметра. prec не указан опциональным, он обязательный.
Использование недокументированных свойств в любых программах - только на свой страх и риск. Могут возникнуть условия когда поведение может измениться, поэтому в большинстве случаев стараются недокументированные не применять. Такое поведение может измениться и после банального обновления.
Пример
--- Code: (clickermann) ---$n = 94.33333333333
print($n)
$n = ROUND($n)
print($n)
HALT
--- End code ---
выдаёт ошибку. Если убрать принт который до round - ошибка исчезнет. Это и есть недокументированное свойство. Ну и что, иногда может проскочить без что второго параметра, вот случай когда не прокатило. И сколько ещё таких случаев может быть.
Navigation
[0] Message Index
Go to full version