Just wondering in php, if it was possible to convert a string to a double. I am using a financial web service which provides a price as a string. I really need to process th
Just use floatval().
E.g.:
$var = '122.34343';
$float_value_of_var = floatval($var);
echo $float_value_of_var; // 122.34343
And in case you wonder doubleval() is just an alias for floatval()
.
And as the other say, in a financial application, float values are critical as these are not precise enough. E.g. adding two floats could result in something like 12.30000000001
and this error could propagate.
Why is floatval the best option for financial comparison data? bc functions only accurately turn strings into real numbers.
For arbitrary precision mathematics PHP offers the Binary Calculator which supports numbers of any size and precision, represented as strings.
$s = '1234.13';
$double = bcadd($s,'0',2);
PHP: bcadd
Use doubleval()
. But be very careful about using decimals in financial transactions, and validate that user input very carefully.