Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 德西马尔菲尔德获胜';我不接受浮动汇率_Python_Django - Fatal编程技术网

Python 德西马尔菲尔德获胜';我不接受浮动汇率

Python 德西马尔菲尔德获胜';我不接受浮动汇率,python,django,Python,Django,我有一个模型: Model(models.Model) price = models.DecimalField(max_digits=10, decimal_places=2) 我有一个字符串: new_price = "39.99" 当我尝试以下方法时: model_instance.price = float(new_price) model_instance.save() 我得到django.core.exceptions.ValidationError:{'price':[

我有一个模型:

Model(models.Model)
    price = models.DecimalField(max_digits=10, decimal_places=2)
我有一个字符串:

new_price = "39.99"
当我尝试以下方法时:

model_instance.price = float(new_price)
model_instance.save()
我得到
django.core.exceptions.ValidationError:{'price':['确保总共不超过10位。]}

为什么?

这与我的工作有关。但您可以将字符串直接与
分码字段一起使用:

model_instance.price = "39.99"
model_instance.save()
如果您有动态输入,您可以直接使用以获得所需的精度:

from decimal import *

model_instance.price = Decimal(new_price).quantize(
    Decimal('0.01'), 
    rounding=ROUND_HALF_UP)
那是和我有关的。但您可以将字符串直接与
分码字段一起使用:

model_instance.price = "39.99"
model_instance.save()
如果您有动态输入,您可以直接使用以获得所需的精度:

from decimal import *

model_instance.price = Decimal(new_price).quantize(
    Decimal('0.01'), 
    rounding=ROUND_HALF_UP)

试着用decimal.decimal代替float()

试着用decimal.decimal代替float()

@schwobaseggl我试过了,得到了同样的错误unfortunately@schwobaseggl我试过了,不幸的是,我第一次试过了,但由于某种原因,它不起作用。事实上,指定
model\u instance.price=str(new\u price)
成功了,尽管它已经是一个字符串了,但很奇怪!谢谢这是我第一次尝试的,但由于某些原因,它不起作用。事实上,指定
model\u instance.price=str(new\u price)
成功了,尽管它已经是一个字符串,但很奇怪!谢谢