首页 > 解决方案 > Python - 取一个 int 变量并用浮点数对其进行计时?

问题描述

作为一个学习项目,我正在尝试编写一个小游戏来简单地熟悉 Python 语言并培养我的编程技能。作为一名游戏玩家,我似乎总是想在游戏中添加额外的代码,以使其更具可玩性并因此变得有趣。现在我陷入了愚蠢,希望这很容易被更熟悉的人解决:

Python 3.8.8

我有一个随机选择的int并将其添加到变量中:

if act_trl_cls == trl_cls[0]:
    trl_atk_pwr = random.randint(7.0, 10.0)

我要做的是创建一个浮点数(出于百分比目的)将其添加到变量中:

if act_trl_cls == trl_cls[0]:

    trl_cls_wpn_ran = random.uniform(0.01, 0.05)
    trl_cls_wpn_dmg = "{:.2f}".format(trl_cls_wpn_ran) # converts to two decimal points

...然后将它们相乘得到一个百分比,就像我们给小费一样。

例子:

账单总额:53.56 美元

53.56 美元 * .20 = 10.71 美元

53.56 美元 + 10.71 美元 = 64.27 美元

总计:64.27 美元

我的问题是我们如何在 Python 中表示它?每次我尝试:

if fight_confirmation == "Y" or fight_confirmation == "y":
    total = trl_atk_pwr * trl_cls_wpn_dmg

...我最终得到:

0.030.030.030.030.030.030.030.03

...或其他一些变化,取决于随机函数和相应方法选择的随机intfloat ,而不是分配给每个变量的相乘值的返回值。显然这不是正确的方法。

标签: python

解决方案


您必须在乘法之前将其转换为浮点数,如下所示。

if fight_confirmation == "Y" or fight_confirmation == "y":
    total = float(trl_atk_pwr) * float(trl_cls_wpn_dmg)

你得到这个是因为现在你得到 trl_cls_wpn_dmg 作为一个字符串,当你将它乘以一个数字时它会进行连接。


推荐阅读