Преобразование строки к математическому результату
a = "57 / 570";
a; //выведет 57 / 570 Как сделать, что бы выводилось 0.10 ? Из идей только парсить строку, но может есть более лёгкие способы? Строка будет простая, только с одним действием делением, без скобок и прочего. Как в примере. |
Цитата:
http://javascript.ru/eval :D |
Цитата:
function calculate(expr) { var operands = expr.split('/'); return parseFloat(operands[0]) / parseFloat(operands[1]); } alert(calculate("57 / 570")); |
var a = "57 / 570"; var b = Function("return " + a)(); alert(b); |
Цитата:
А можно объяснить или ссылку на объяснение подобных вещей? |
totalavitaminoz, Function
|
function calc(n) { n = n.split(/ ?\/ ?/); var res = n[0], i; for(i=1; i<n.length; i++) res /= n[i]; return res; } alert( calc('9/3') ); //3 alert( calc('16 / 2/2') ); //4 alert( calc('5/2.5') ); //2 alert( calc('10 / 1 / 2 / 2') ); //2.5 alert( calc('125/5/5/5') ); //1 |
Если это "57 / 570" не вводится посетителем сайта, не сохраняется нигде и не выводится впоследствии другими пользователями сайта, самый просто вариант - использовать функцию eval(), прогоняющую через js-парсер какую-либо строку.
var a = "57/570"; alert(eval(a)); Те же условия действуют на вариант BallsShaped'а, он синонимичен функции eval() |
Часовой пояс GMT +3, время: 10:28. |