我试着把从cmath的divide函数得到的数字四舍五入为一个“整数”,由于程序的性质,结果常常是负数。
示例代码:
strength = input("Input Strength Stat: ")
str_mod = round(strength/2)
然而,这样做的结果是,由于python中的一个奇怪之处,如果在舍入之前str_mod
返回的结果是-1.5,那么返回的结果总是更接近于零,而不是更进一步(结果是-1而不是-2)
这是因为我正试图为一个自定义的纸笔RPG系统创建一个自动派生的stat calc脚本,不是所需的行为。我想要的是脚本返回,四舍五入后返回-1.5,-2.0。我需要能够做到这一点,同时仍然舍入正数类似。
你可以用安全的方法:
在这种情况下,由于强度被保证为浮点数,因此可以安全地除以2,而不必担心截断或从
__future__
导入division
。作为奖励,你在游戏中也消除了巨大的安全责任。使用输入,用户可能会对您的系统造成严重损坏:
这是因为您正在从
strength/2
获取(截断的)int尝试
strength/2.0
这不是python的一个奇怪之处,而是大多数语言如何对数字进行类型转换
5/2=2
5/2.0=2.5
或者,您可以尝试:
from __future__ import division
为了使用py3k除法。(例如,结果总是浮动的)
相关问题 更多 >
编程相关推荐