data type conversion - PHP function to safely return a float from string -


let's have form ask product's price. basically, don't consider case user adds thousands comma, is: 1,000.00 or 1,000,000.00

i consider case user inputs 1000.00 or 1000,00 or 1000000.00 never 1,000.00, or 10,000,000.00 or, worst, 10.000.000,00

i came function.

function getprice($price) {     if (is_string($price)) {         if (strpos($price, ",") !== false) {             $price = str_replace(',', '.', $price);         }     }     return (is_numeric($price)) ? floatval($price) : false; } 

do consider safe function? can point improovements?

you function looks ok me except last line floatval.

my main consideration approach php not represent float correctly to: floatval, casting float or arithmetic operations float variables.

for example php may convert 10000.00 9999,99 depending on precision set. (you can read more here http://php.net/manual/en/language.types.float.php)

if need prices arithmetic calculations after parsing them float (in getprice function) , need precision advice avoid parsing float , either:

  • leave them string , calculations strings
  • use bc math extension more precise math operations in php

Comments

Popular posts from this blog

php - How to add and update images or image url in Volusion using Volusion API -

javascript - jQuery UI Splitter/Resizable for unlimited amount of columns -

javascript - IE9 error '$'is not defined -