我正在尝试将数字恢复为其原始格式,但保留其正负性。Stack Overflow上的某个用户向我推荐了以下代码,它可以很好地工作,但不保留负数。
请问是否有人能够帮我找到更好的解决方法?
编辑 - 适用于美元货币/普通数字
示例:
1,234 = 1234 -1,234 = -1234 1,234.00 = 1234 1,234.56 = 1234.56
请问是否有人能够帮我找到更好的解决方法?
编辑 - 适用于美元货币/普通数字
示例:
1,234 = 1234 -1,234 = -1234 1,234.00 = 1234 1,234.56 = 1234.56
function numberUnformat($number)
{
$cleanString = preg_replace('/([^0-9\.,])/i', '', $number);
$onlyNumbersString = preg_replace('/([^0-9])/i', '', $number);
$separatorsCountToBeErased = strlen($cleanString) - strlen($onlyNumbersString) - 1;
$stringWithCommaOrDot = preg_replace('/([,\.])/', '', $cleanString, $separatorsCountToBeErased);
$removedThousendSeparator = preg_replace('/(\.|,)(?=[0-9]{3,}$)/', '', $stringWithCommaOrDot);
return (float) str_replace(',', '.', $removedThousendSeparator);
}
1.000,01
)? - Mike Brant