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 回答