note 116574 added to function.floatval

From: Date: Fri, 23 Jan 2015 16:26:25 +0000
Subject: note 116574 added to function.floatval
Groups: php.notes 
Request: Send a blank email to php-notes+get-201510@lists.php.net to get a copy of this message
Thinks to Brewal Renault. To have a good result with float values which start by comma or dot, i propose to add small code to function tofloat noted in http://php.net/manual/fr/function.floatval.php#114486 <?php function tofloat($sNum) { $iDotPos = strrpos($sNum, '.'); $iCommaPos = strrpos($sNum, ','); $iSep = (($iDotPos > $iCommaPos) && (false !== $iDotPos)) ? $iDotPos : ((($iCommaPos > $iDotPos) && (false !== $iCommaPos)) ? $iCommaPos : false); if (!$iSep) { if (0 === $iDotPos || 0 === $iCommaPos) { $sVal = '.' . preg_replace("/[^0-9]/", "", $sNum); } return floatval($sVal); } return floatval( preg_replace("/[^0-9]/", "", substr($sNum, 0, $iSep)) . '.' . preg_replace("/[^0-9]/", "", substr($sNum, $iSep + 1, strlen($sNum))) ); } $num = '1.999,369€'; var_dump(tofloat($num)); // float(1999.369) $otherNum = '126,564,789.33 m²'; var_dump(tofloat($otherNum)); // float(126564789.33) $sOtherNum1 = ',050'; var_dump(tofloat($sOtherNum1 )); // float(0.05) Demo : http://codepad.org/hytRLaDc ---- Server IP: 72.52.91.14 Probable Submitter: 41.225.111.148 ---- Manual Page -- http://php.net/manual/en/function.floatval.php Edit -- https://master.php.net/note/edit/116574 Del: integrated -- https://master.php.net/note/delete/116574/integrated Del: useless -- https://master.php.net/note/delete/116574/useless Del: bad code -- https://master.php.net/note/delete/116574/bad+code Del: spam -- https://master.php.net/note/delete/116574/spam Del: non-english -- https://master.php.net/note/delete/116574/non-english Del: in docs -- https://master.php.net/note/delete/116574/in+docs Del: other reasons-- https://master.php.net/note/delete/116574 Reject -- https://master.php.net/note/reject/116574 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#201510) next »