2012-12-19 2 views
0

Я хочу проверить, является ли значение десятичным. Мне нужно сделать это вручную, предпочтительно с использованием повторноКак проверить, является ли значение десятичным?

Является ли это:

if re.match("^[0-9]*[,\.][0-9]*$", value) == None: 
    print 'error!' 
else: 
    print "%.2f" % value 

правильно?

значение может быть, например:

20 
30.1 
155,69 

Как это сделать?

+0

Другими словами, вы хотите проверить, является ли число числом? '20 == 20.0', который является« десятичным »? – Ben

+0

Можете ли вы прояснить * точно, что вы подразумеваете под «Десятичным числом», возможно, с большим количеством примеров? Что относительно '1.0e3' или' -1.0e-3'? –

ответ

4

Вы хотите использовать + квантор здесь не * первой цифры строки, если вы не хотите, такие значения, как .30 также сделать ,. дополнительное использование ? и . не нужно быть экранированы внутри классов символов:

re.match("^[0-9]+[,.]?[0-9]*$", value) 
+1

почему бы и нет .3? это действительное число (на калькуляторе) – PALEN

+1

Название и пример делают этот вопрос неоднозначным, но принятие '.' определенно не является десятичным. –

Смежные вопросы