Author Topic: ROUND  (Read 4739 times)

0 Members and 1 Guest are viewing this topic.

Крис Тинка

  • Активный участник
  • ***
  • Posts: 171
    • View Profile
ROUND
« on: January 10, 2014, 07:55:30 PM »
ROUND вызывает ошибку, если данные введены через INPUTBOX
Code: (clickermann) [Select]
$a = 3 //INPUTBOX("Ввод данных", 3, 10)
$b = ROUND($a/2,0)
LOGWRITE($b)
HALT

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: ROUND
« Reply #1 on: January 10, 2014, 08:32:30 PM »
Следует понимать что некоторые функции возвращают "строку" а не "число", поэтому нужно дополнительно функцией INT преобразовать в "число".

Code: (clickermann) [Select]
$a = INT(INPUTBOX("Ввод данных", 3, 10))

$b = ROUND($a/2,0)
LOGWRITE($b)
HALT

Крис Тинка

  • Активный участник
  • ***
  • Posts: 171
    • View Profile
Re: ROUND
« Reply #2 on: January 14, 2014, 03:24:38 PM »
Получается, если я беру из массива кусок строки, то мне обязательно нужно применить INT ?
Code: (clickermann) [Select]
LCLICK(($x_ostrov + INT(STRCUT ($island[$num_island], 4, 3))),($y_ostrov + INT(STRCUT ($island[$num_island], 7, 3))))

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: ROUND
« Reply #3 on: January 14, 2014, 03:47:15 PM »
Просто смотри в описании
STRCUT ("str", begin, size) - строковая функция; возвращает кусок строки

Значит INT тут обязателен. Именно из за того что функции пытаются вычислять строки как числа и возникает ошибка.