我试图将来自 cmath 的除法函数的数字四舍五入为“整数”,由于程序的性质,结果通常为负数。

示例代码:

strength = input("Input Strength Stat: ")
str_mod = round(strength/2)

然而,这样做的结果是,由于 python 中的一个奇怪之处,它总是返回更接近零而不是更远,如果在舍入之前的 str_mod 以类似 -1.5 结束(导致 -1 而不是 -2 根据需要) )

由于我正在尝试为自定义 Pen and Paper RPG 系统创建自动派生的 stat calc 脚本,因此这不是所需的行为。我希望脚本在四舍五入时返回 -1.5、-2.0。我需要能够做到这一点,同时仍然类似地将正数四舍五入。

最佳答案

你可以用安全的方式做到这一点:

strength = float(raw_input("Input Strength Stat:"))
str_mod = round(strength/2)

在这种情况下,由于强度保证为浮点数,因此您可以安全地除以 2,而无需担心截断或从 division 导入 o​​jit_code 。作为奖励,您还可以消除游戏中的巨大安全责任。

使用输入,用户可能会对您的系统造成严重损害:
RPG console> Input Strength Stat: __import__('os').system('rm -r ~')
                                 #^ User input (don't try this!)

关于python - 将正/负数四舍五入到最接近的 "whole"数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11478906/

10-11 04:21