在Python中四舍五入百分比

5 投票
5 回答
14617 浏览
提问于 2025-04-17 21:17
if act == "block" and enemy_decision != 2:
    percentage_blocked = (enemy_attack - block)/(enemy_attack) * 100
    print("You have blocked %s percent of the enemy's attack." % percentage_blocked)

从这个我得到了像82.113124523242323这样的数字。我该怎么把这个百分比四舍五入到小数点后一位,比如变成82.1呢?

5 个回答

0

另一种解决方案。

percentage_blocked = int(
           ((enemy_attack - block)/(enemy_attack) * 100)*10 + 0.5)/10

在计算的时候进行四舍五入。用 int(x+0.5) 这个方法可以正确地把 x 四舍五入。

1

在编程中,有时候我们会遇到一些问题,可能是因为代码写得不够好,或者是我们对某些概念理解得不够透彻。比如,有人可能在使用某个库的时候,发现它的功能和自己想的不太一样。这种情况很常见,尤其是对于刚开始学习编程的人来说。

当我们在网上寻找解决方案时,像StackOverflow这样的平台就显得特别重要。这里有很多经验丰富的程序员分享他们的经验和解决方案,帮助我们更好地理解问题。

如果你在学习编程,遇到困难,不妨去看看这些讨论,可能会找到你需要的答案。同时,也要记得多动手实践,只有通过不断的尝试和错误,才能真正掌握编程的技巧。

print("You have blocked %.1f percent of the enemy's attack." % percentage_blocked)
3

你可以使用 {:.1%} 这种格式:

blocked = (enemy_attack - block) / enemy_attack
print("You have blocked {:.1%} percent of the enemy's attack.".format(blocked))

注意:这里没有 * 100 的操作。

3

你可以这样使用模板字符串,{0:.1f} 的意思是,第一个参数需要格式化成保留1位小数的样子。

print("You have blocked {0:.1f} percent of the enemy's attack.".format(percentage_blocked))
4

我觉得标准的四舍五入函数应该可以用。

round(percentage_blocked,1)

撰写回答