home changes contents help options

**031:文字列を数値に変換**

数値または適切な文字列をint型に変換するにはint(x)を使う。xが数値である場合、intは小数部を破棄して0に丸める。
逆に数値を文字列にするにはバッククォートで囲むか、str()を使う
float型に変換するには組み込み関数のfloat()を使う。2進数で計算しているので誤差が出ることに注意。

 >>> x='23'
 >>> y=int(x)
 >>> y
 23
 >>> a=2
 >>> b=4
 >>> c=a+b
 >>> c
 6
 >>> e=`a`
 >>> e
 2
 >>> str(a)
 '2'
 浮動小数点に変換
 >>> x='2.3'
 >>> float(x)
 2.2999999999999998
 >>> print float(x)
 2.3

文字列が整数か浮動小数点か文字列かを判別する:

 def check_numbertype(s):
    """
    文字列が整数か浮動小数点か文字列かを判別する
    """
    try:
        int(s)
        return 'integer'
    except ValueError:
        try:
            float(s)
            return 'float'
        except:
            return 'string'

 print check_numbertype('12')
 print check_numbertype('1.23')
 print check_numbertype('ab')
 integer
 float
 string


comments:

バックスラッシュじゃなくて -- Thu, 16 Mar 2006 00:34:54 +0900 reply
バッククォートじゃないでしょうか。

ご指摘ありがとうございます --seko, Fri, 17 Mar 2006 19:54:22 +0900 reply
おっしゃるとおりです。さっそく修正いたしました。