2

バックエンドでDjangoを使用し、フロントエンドでjQueryを使用しています。分数と整数の両方を受け入れたい(レシピの材料量については、「1/2」、「1 1/4」、「2」など)。これらの値を格納するためにFloatFieldを使用しています。これらの分数/整数を浮動小数点数に変換する最良の方法は何ですか?

4

2 に答える 2

1
>>> import fractions
>>> fractions.Fraction("1")
Fraction(1, 1)
>>> fractions.Fraction("1/2")
Fraction(1, 2)

残念ながら、fractionコンストラクターは混合分数( "1 1/2")を処理しないため、それらを自分で解析するために何かを作成する必要があります。カスタムフィールドを使用するか、にキャストすることで、データベースに保存できますfloat

于 2010-11-04T21:48:11.907 に答える
0

これは私のために働きます。まだ少しクリーンアップできます。

import fractions

def parse_multi_part_fraction(f):
    if '/' not in f:
        return float(f)
    parts = f.split(' ')
    total = 0.0
    for p in parts:
        if '/' in p:
            frac = fractions.Fraction(p)
            total += frac.numerator * (1.0 / frac.denominator)
        else:
            total += float(p)
    return total
于 2013-06-12T06:24:32.150 に答える