不知道除法时如何保留小数

问题描述

预先抱歉,我对编码还很陌生,所以如果这是一个常见问题,我深表歉意,尽管我找不到我遇到的问题的答案。

我有一个正在丢失小数的值,所以程序没有按照我想要的方式计算所需的数量。原始输入是 2.5,因此 .5 正在下降,并且输出的值仅为完整输出的 80%。

我的理解是你应该能够将两个浮点值相除,但我无法让它工作,这就是为什么我一直将我的浮点值转换为 int,然后再转换回浮点数作为输出,但它感觉不对。

以下是使用变量的一些语句。如有必要,我可以提供完整的代码。基本上,在第三行,我除以份数,然后我可以根据输入的份数乘以适当的数量。这会导致一个十进制值,当我将变量转换为 int 时,十进制值将丢失。

agave_nectar = format(agave_nectar,".2f")
print(agave_nectar,"cup(s) agave nectar\n")
agave_nectar = agave_nectar / servings
agave_nectar = agave_nectar * servings
agave_nectar = format(agave_nectar,"cup(s) agave nectar\n")
agave_nectar = int(float(agave_nectar))
agave_nectar /= 16
agave_nectar = format(agave_nectar,"gallon(s) agave nectar")

我在尝试对两个浮点值进行除法时遇到的问题是:

Traceback (most recent call last):
  File "main.py",line 16,in <module>
    lemon_juice_cups = lemon_juice_cups / servings
TypeError: unsupported operand type(s) for /: 'str' and 'str'

解决方法

您认为您在使用两个浮点值进行除法,但实际上您使用的是两个字符串。从第 16 行的 TypeError 可以明显看出这一点。

请尝试以下操作:

lemon_juice_cups = float(lemon_juice_cups) / float(servings)