Преобразовать строку в двойную - возможно ли это?
Просто интересно в php, если бы можно было преобразовать строку в double. Я использую финансовый веб-сервис, который предоставляет цену как строку. Мне действительно нужно обработать это как двойное, и мне было интересно, как я его конвертировал.
спасибо
Ответы
Ответ 1
Просто используйте floatval()
.
например:.
$var = '122.34343';
$float_value_of_var = floatval($var);
echo $float_value_of_var; // 122.34343
И если вы задаетесь вопросом doubleval()
, это просто псевдоним для floatval()
.
И, как говорят другие, в финансовом приложении значения float имеют решающее значение, поскольку они недостаточно точны. Например. добавление двух поплавков может привести к чему-то вроде 12.30000000001
, и эта ошибка может распространяться.
Ответ 2
Для произвольной математики точности PHP предлагает Binary Calculator, который поддерживает числа любого размера и точности, представленные в виде строк.
$s = '1234.13';
$double = bcadd($s,'0',2);
PHP: bcadd
Ответ 3
Используйте doubleval()
. Но будьте очень осторожны в использовании десятичных знаков в финансовых транзакциях и тщательно проверяйте, что пользователь вводит очень.
Ответ 4
Почему floatval - лучший вариант для финансовых данных сравнения? Функции bc точно верят строки в действительные числа.