2

渡された値が有効な数値かどうかをチェックする python 関数があります。渡される値は文字列形式です。

def is_valid_numeral(text_to_check):
    '''Check if passed value is a valid numeral figure'''
    try: 
        float(text_to_check)
        return True
    except ValueError:
        return False

のような値6E+007が渡され、この関数は正しい True を返します。

上記の関数の後、渡された数値を Decimal フィールドに保存する必要があります。だから私は以下のようにformat_decimal関数を実行します

def format_decimal(value, decimals): 
    '''Format a value to "n" decimal places
    http://mkaz.com/solog/python/python-string-format.html
    '''
    try:
        if decimals == 2:
            value =  int(value)/100
            return "{:.2f}".format(int(value))
    except ValueError:
        raise 

この時点で、次のエラーで失敗します。

`Value Error: Invalid literal for int() with base 10:6E+007`

これは実際には別の表記法で有効な数値であるため、このタイプの値を変換してformat_decimal関数に渡すことができる関数はありますか?

4

3 に答える 3