Десятичная проверка + PHP? - PullRequest
       8

Десятичная проверка + PHP?

2 голосов
/ 09 февраля 2010

Как выполнить проверку десятичного числа в PHP?

:)

(десятичная точка необязательна) это должно принять ... 0, 1, 2, 0,123, 0,2, 12,34 и т. Д.

Ответы [ 4 ]

7 голосов
/ 09 февраля 2010

Подойдет ли вам что-нибудь из этого?

4 голосов
/ 09 февраля 2010

Ответы на английский язык уже опубликованы. NumberFormatter :: parse () заботится о других локалях, если вам нужно такое поведение:

$formatter = new NumberFormatter('de-DE', NumberFormatter::PATTERN_DECIMAL);
if ($formatter->parse($value) !== false) {
    # A correct numeric value in german locale, like '12.345,00001'
}
2 голосов
/ 09 февраля 2010

предложил is_float / is_numeric не будет работать, потому что is_float не принимает параметры запроса (которые являются строками), а is_numeric принимает что-то вроде "+ .1e0", что не то, что вы хотите. Надежным способом является использование регулярного выражения для проверки, например

 $is_decimal = preg_match('/^\d+(\.\d+)?$/', $some_string);

выражение может варьироваться в зависимости от ваших потребностей. Например, выше также будет принимать «000,00» или «111111111111111».

2 голосов
/ 09 февраля 2010

Использование is_float ...

...