alex_batsuev ([info]alex_batsuev) wrote,
@ 2006-03-21 12:24:00
Previous Entry  Add to memories!  Tell a Friend  Next Entry
Flash 8. String -> Number
Как вам такой прикол:
var str_num:String = '046';
trace (str_num);
trace (Number(str_num));

Унадайте, что будет в output? 046, 46?
А вот фиг. Получаем:
046
38

Кстати, подобный прикол идет с любыми числами, в String начинающимися с нулей.

Пробуем через конструктор Number:
trace (new Number(str_num));

и получаем опять не то, что надо...

теперь попробуем parseInt:
trace (parseInt(str_num));

И опять не то!

Закономерный вопрос: почему? и как бороться?
Ответ просто до банальности :) Числа, начинающиеся с 0, воспринимаются как 8-ричные.
Итак, дабы правильно приводить данные числа, используем:
var str_num:String = '046';
trace (parseInt(str_num,10));

или parseFloat:
var str_num:String = '046';
trace (parseFloat(str_num));

Посмотреть эту запись в моем журнале




Create an Account
Forgot your login or password?
Login w/ OpenID
English • Español • Deutsch • Русский…