【问题标题】:Django conversion of unicode value to float doesn't workDjango将unicode值转换为float不起作用
【发布时间】:2016-06-02 09:26:55
【问题描述】:

这是我的代码的一部分,我需要使用float() 将 Unicode 值转换为浮点数,但出现异常 invalid literal float()

print("before conversion ",request.POST['prix'])
prix=request.POST['prix']
prixConvert= float(prix)
print("after conversion ")
print(prixConvert)

【问题讨论】:

  • 请发布一个您尝试转换的数字示例,这会导致错误。
  • 请检查..如果 unicode 包含数字以外的字符会发生这种情况..
  • 请打印 request.POST['prix'] 并显示您要转换为浮动的内容
  • 当我尝试打印 request.POST['prix'] 我得到了 u'10,0'
  • This question 可能会有所帮助。

标签: django unicode


【解决方案1】:

根据您在问题下的评论,您的“号码”实际上包含,。这不是 float() 调用的有效字符。您需要先将其转换为 .

print("before: {}".format(request.POST['prix']))

prix = request.POST['prix'].replace(',', '.')
prixConvert = float(prix)

print("after conversion: {}".format(prixConvert))

更好的是,捕获错误并告诉用户提供一个有效的字符串

try:
    prixConvert = float(prix)
except ValueError:
    print('That was not a valid float number.')

如果您的输入非常不可靠,您可以在转换之前添加更多 .replace() 调用以“清理”输入,这样您可能会捕获更多隐藏在其他无效输入中的数字。

【讨论】:

    猜你喜欢
    • 2011-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多