[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Из string в float
ololo686
К примеру есть строка вида "7000/100". Нужно перевести в float и рассчитать - чтобы получилось 70.0. При использовании floatval() Все после знака / просто отбрасывается... Есть вообще способы?



Спустя 6 минут, 55 секунд (8.05.2010 - 13:01) sergeiss написал(а):
Функция eval(), при правильном использовании - это то, что нужно в такой ситуации.

Спустя 6 минут, 41 секунда (8.05.2010 - 13:08) twin написал(а):
ой

Спустя 3 часа, 17 минут, 59 секунд (8.05.2010 - 16:26) Michael написал(а):
парсить и делить.

Спустя 8 часов, 57 минут, 42 секунды (9.05.2010 - 01:24) sergeiss написал(а):
Один ойкает (и чё ойкает-то?), другой парсить отправляет...

Я ж говорю - eval() как раз для таких случаев:
$formula='7000/10';
$eval='$res='.$formula.';';

eval( $eval );

echo '$res='.$res;


PS. Ясно дело, что если юзер вводит формулу, то надо ее проверять. Чтоб инъекцию не пропустить smile.gif Которая может быть похлеще, чем SQL-инъекция.

Спустя 6 часов, 38 минут, 18 секунд (9.05.2010 - 08:02) Michael написал(а):
Моя версия:
$str = '7000/100';
$arr = explode('/', $str);
echo number_format((intval($arr[0])/intval($arr[1])), 1);

Спустя 2 часа, 37 минут, 42 секунды (9.05.2010 - 10:40) sergeiss написал(а):
Michael - а где универсальность? Допустим, там не деление, а умножение.
$str='200*3.5';

И чё? Где у тебя анализ содержимого? А если сложение, вычитание... А если сложное выражение?

Короче говоря, если уж делать, то универсальное что-то надо. Я так подозреваю, что автор хотет сделать нечто типа калькулятора smile.gif А там нужно универсальное решение.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.