Я пытаюсь отформатировать номер до его первоначальной формы, но сохраните, отрицательно или нет. Кто-то из переполнения стека привел меня к этому коде, который работает очень хорошо, но он не сохраняет отрицательный результат.Проанализируйте число, но сохраните отрицательный
Может ли кто-нибудь помочь мне лучше исправить это?
EDIT - Для USD Валюта/нормальные номера
Пример:
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')? –
нет это не хорошо, вопрос – bryan
"unformat" лучше написано "parse" – Eric