在Python中,当一个int大于2**31时,它会转为long:
a = 2147483647
a + 1 = 2147483648
b = -2147483648
b - 1 = -2147483649
但我需要像Python中的int那样的Python int溢出:
a = 2147483647
a + 1 = -2147483648
b = -2147483648
b - 1 = 2147483647
可能吗?提前致谢!
我已经看到了一些关于这个的问题,但是我读过的没有一个问题帮助我实际理解为什么我要做的就是失败.
所以我有一堆浮点值,它们有不同的精度.有些是0.1其他是1.759374等等.我想格式化它们所以它们都是"+ 0.0000000E + 00"的形式我试过做
number = '%1.7f' % oldnumber
Run Code Online (Sandbox Code Playgroud)
但那没用.我以为我告诉它要做的是"小数点后一位数,后浮点数",但它不起作用.我并没有真正得到文档中的示例,这些示例似乎甚至不打扰"小数点前后"问题,而且我没有找到关于小数点修复之前和之后的问题.
现在,我知道我的一些数字是0.0437或类似,我希望它们显示为4.3700000E-02或其他东西.我有点希望它可以自己做E位,但如果不是我怎么办呢?
这是我的确切行:
RealValConv = '%1.7g' % struct.unpack('!f', RealVal.decode('hex'))[0]
Run Code Online (Sandbox Code Playgroud)
RealVal是十六进制数,表示我想要的值.
此外,这是在Python 2.7中
所以有问题的函数很长,所以我将总结一下.
def func1( X = None, Y = None ) :
if X :
dostuff
if condition :
Z += 1
if Y :
print Y
func1.Z = 0
def func2( A )
for loop that does stuff and calls func1
Run Code Online (Sandbox Code Playgroud)
当我运行它时,它告诉我Z + = 1行有一个错误"UnboundLocalError:在赋值之前引用的局部变量'Z'"
在我可以找到的任务问题之前,我已经阅读了所有未绑定的本地错误和Referanced,但没有一个问题看似相似,并且没有一个解决方案有效.
我应该让Z成为一个全球性的吗?