我有这个表单字段:
area = forms.DecimalField(max_digits=20)
Run Code Online (Sandbox Code Playgroud)
当我发布它时,我得到unicode数据:
raise Exception(type(a.get('area',))
Run Code Online (Sandbox Code Playgroud)
结果是
<type 'unicode'>
如何将其转换为浮动?我想对结果执行算术运算.
如果我这样做:
float(a.get('area', '0'))
Run Code Online (Sandbox Code Playgroud)
然后我明白了
float()参数必须是字符串或数字
如果表单处理,你会得到你area为<type 'unicode'>那么这应该足以将它转化并在其上进行运算.
area = form.data['area']
#area should be <type 'unicode'>
area_float = float(area)
Run Code Online (Sandbox Code Playgroud)
请考虑以下示例
a = u'1.34'
a_float = float(a)
type(a_float)
>> <type 'float'>
Run Code Online (Sandbox Code Playgroud)
然而考虑到一个DecimalField使用Python的decimal内部输入和从蟒不同float,其使用FloatField.
十进制类型在这里阅读更多关于十进制类型.
| 归档时间: |
|
| 查看次数: |
10296 次 |
| 最近记录: |