note 116574 added to function.floatval
| From: | troudidotziedathotmaildotfr | 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