![]() |
Удивил, и очень удивил!
Ранее не сталкивался со следующей проблемой:
Как вычислить выражение вида var_num="2+2"; те получить var_num=4 Функция eval как я уже понял не прокатывает.... Есть ли простой метод это сделать? |
Старым способом, который в школе на бейсике изучал.
а = 2 б = 2 в = а + б :D |
Random SunFire, вся фишка в приведении типов данных и в ассоциативности операторов:
var_num = 2+2 = 4 - оператор сложения, так как оба операнда имеют тип number var_num = "2"+"2" = 22 - конкатенация, оба операнда имеют тип string var_num = "2+2" = 2+2 - ни то ни другое, символ "+" это часть строки |
Все это конечно замечательно :p , но видимо надо уточнить вопрос.
Допустим вы вводите в текстовое поле выражение вида "2+2", и мы получаем переменную text равную "2+2". А вот теперь вопрос, как из этого получить 4. Вобще, какой функцией можно поменять тип переменой? Обыскался... Как определить тип есть, а сменить нет? |
Судя по всему найденму, нормальными методами получить 4 из "2+2" нельзя...
Так что, уточняю в догонку :D вопрос ставший основным. Как сделать из var_num="2" переменную со значением var_num=2 ? |
var_num = Number(var_num);
А вообще, имхо, что-то ты перемудрил, если у тебя, чтобы сложить 2 числа нужно в одно и тоже поле вписАть 2+2, а не в 2 разных вписАть просто числа |
если в строке только плюсы и минусы - можно сделать так:
Код:
evaluate = function (str) { |
Угу. А сменить тип на числовой судя из кода - Number(p[i][j]); Спасибо.
У меня кстати идея :D , собирать строчку для вычисления во Флаше и отправлять её вычислять на PHP, самый чуствую простой способ. |
| Часовой пояс GMT +4, время: 16:48. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.