【问题标题】:Not sure how to retain the decimal when dividing numbers不知道除数时如何保留小数
【发布时间】:2021-09-26 11:47:06
【问题描述】:

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

我的值正在丢失它的小数,因此程序没有按照我的意图计算所需的金额。原始输入为 2.5,因此 0.5 正在下降,进而输出的值仅为完整输出的 80%。

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

以下是一些使用变量的语句。如有必要,我可以提供完整的代码。基本上,在下面的第三行,我将除以份数,这样我就可以根据输入的份数乘以适当的数量。这会导致十进制值,当我将变量转换为 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, ".2f")
print(agave_nectar, "cup(s) agave nectar\n")
agave_nectar = int(float(agave_nectar))
agave_nectar /= 16
agave_nectar = format(agave_nectar, ".2f")
print(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'

【问题讨论】:

标签: python division divide


【解决方案1】:

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

请尝试以下方法:

lemon_juice_cups = float(lemon_juice_cups) / float(servings)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-03
    • 2016-03-19
    • 2018-09-13
    • 1970-01-01
    • 2022-10-12
    • 1970-01-01
    相关资源
    最近更新 更多