Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.01.2014, 11:49
Интересующийся
Отправить личное сообщение для totalavitaminoz Посмотреть профиль Найти все сообщения от totalavitaminoz
 
Регистрация: 06.01.2014
Сообщений: 23

Преобразование строки к математическому результату
a = "57 / 570";
a; //выведет 57 / 570

Как сделать, что бы выводилось 0.10 ?
Из идей только парсить строку, но может есть более лёгкие способы?

Строка будет простая, только с одним действием делением, без скобок и прочего. Как в примере.
Ответить с цитированием
  #2 (permalink)  
Старый 07.01.2014, 12:15
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,127

Сообщение от totalavitaminoz
Из идей только парсить строку, но может есть более лёгкие способы?
Есть еще, не любимый тут, метод
http://javascript.ru/eval
Ответить с цитированием
  #3 (permalink)  
Старый 07.01.2014, 14:03
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от totalavitaminoz
Строка будет простая, только с одним действием делением, без скобок и прочего. Как в примере.
Если только два операнда, то все ведь просто:
function calculate(expr) {
    var operands = expr.split('/');
    return parseFloat(operands[0]) / parseFloat(operands[1]);
}

alert(calculate("57 / 570"));
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #4 (permalink)  
Старый 07.01.2014, 15:31
Профессор
Отправить личное сообщение для BallsShaped Посмотреть профиль Найти все сообщения от BallsShaped
 
Регистрация: 14.09.2012
Сообщений: 162

var a = "57 / 570";
var b = Function("return " + a)();
alert(b);
Ответить с цитированием
  #5 (permalink)  
Старый 07.01.2014, 16:07
Интересующийся
Отправить личное сообщение для totalavitaminoz Посмотреть профиль Найти все сообщения от totalavitaminoz
 
Регистрация: 06.01.2014
Сообщений: 23

Сообщение от BallsShaped Посмотреть сообщение
var a = "57 / 570";
var b = Function("return " + a)();
alert(b);
Лаконично, но мне пока вобще не понятно)
А можно объяснить или ссылку на объяснение подобных вещей?
Ответить с цитированием
  #6 (permalink)  
Старый 07.01.2014, 16:20
Профессор
Отправить личное сообщение для BallsShaped Посмотреть профиль Найти все сообщения от BallsShaped
 
Регистрация: 14.09.2012
Сообщений: 162

totalavitaminoz, Function
Ответить с цитированием
  #7 (permalink)  
Старый 07.01.2014, 17:04
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

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
Ответить с цитированием
  #8 (permalink)  
Старый 07.01.2014, 18:23
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Если это "57 / 570" не вводится посетителем сайта, не сохраняется нигде и не выводится впоследствии другими пользователями сайта, самый просто вариант - использовать функцию eval(), прогоняющую через js-парсер какую-либо строку.
var a = "57/570";
alert(eval(a));

Те же условия действуют на вариант BallsShaped'а, он синонимичен функции eval()
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление совпадения строки из строки feniks7 Общие вопросы Javascript 3 24.07.2013 22:15
Преобразование строки в escape и дальнейшая запись в hash 1lider Общие вопросы Javascript 3 12.04.2013 16:05
Преобразование строки в дату. Serious2008 Общие вопросы Javascript 5 28.11.2012 14:22
Преобразование \n в перенос строки Zlyden Javascript под браузер 9 14.09.2012 16:26
Выделение строки в таблице posta ExtJS 5 23.06.2011 12:31