mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 03:14:30 -04:00
improve parseFloat
This commit is contained in:
parent
3ad5de1d2c
commit
e22d3effc6
@ -143,6 +143,51 @@ class Number
|
|||||||
// return (float) $s;
|
// return (float) $s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
//next iteration of float parsing
|
||||||
|
public static function parseFloatv2($value)
|
||||||
|
{
|
||||||
|
|
||||||
|
if(!$value) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
//remove everything except for numbers, decimals, commas and hyphens
|
||||||
|
$value = preg_replace('/[^0-9.,-]+/', '', $value);
|
||||||
|
|
||||||
|
$decimal = strpos($value, '.');
|
||||||
|
$comma = strpos($value, ',');
|
||||||
|
|
||||||
|
//check the 3rd last character
|
||||||
|
if(!in_array(substr($value, -3, 1), [".", ","])) {
|
||||||
|
|
||||||
|
if($comma && (substr($value, -3, 1) != ".")) {
|
||||||
|
$value .= ".00";
|
||||||
|
} elseif($decimal && (substr($value, -3, 1) != ",")) {
|
||||||
|
$value .= ",00";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
$decimal = strpos($value, '.');
|
||||||
|
$comma = strpos($value, ',');
|
||||||
|
|
||||||
|
if($comma === false) { //no comma must be a decimal number already
|
||||||
|
return (float) $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($decimal < $comma) { //decimal before a comma = euro
|
||||||
|
$value = str_replace(['.',','], ['','.'], $value);
|
||||||
|
return (float) $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
//comma first = traditional thousan separator
|
||||||
|
$value = str_replace(',', '', $value);
|
||||||
|
|
||||||
|
return (float)$value;
|
||||||
|
|
||||||
|
}
|
||||||
|
*/
|
||||||
public static function parseStringFloat($value)
|
public static function parseStringFloat($value)
|
||||||
{
|
{
|
||||||
$value = preg_replace('/[^0-9-.]+/', '', $value);
|
$value = preg_replace('/[^0-9-.]+/', '', $value);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user