python输入一个字符串,判断这个字符串是小数还是字母,以及Decimal函数的用法
from decimal import Decimal r = "ab.999999999" #r = "19.999999999" #if r.isdigit()==1 or "".join(r.strip("+").strip("-").split(".")).isdigit()==1: if r.replace('.','',1).isdigit(): xxxx=Decimal(r ).quantize(Decimal('0.00')) print(xxxx,'是小数') else: xxxx=r print(xxxx,'是字母')
from decimal import Decimal #r = "ab.999999999" r = "19.999999999" #if r.isdigit()==1 or "".join(r.strip("+").strip("-").split(".")).isdigit()==1: if r.replace('.','',1).isdigit(): xxxx=Decimal(r ).quantize(Decimal('0.00')) print(xxxx,'是小数') else: xxxx=r print(xxxx,'是字母')
Decimal函数可以将表示数字的字符串精确到小数点后几位。
isdigiit函数只可以判断整型的字符串是否为数字,不能判断小数。在这里用了
r.replace('.','',1).isdigit(): 1表示将'.'将小数点在字符串里只移除一次。
当遇见要判断的数值是负数时,可以采用以下方式
from decimal import Decimal i=str(-12345.999999) if i.replace('.', '', 1).replace('-', '', 1).isdigit(): resultoutput = Decimal(i).quantize(Decimal('0.00')) print(resultoutput )
用replace移除负号。