Python:将一个float拆分为不同的变量,将最后一个float添加到第一个int和calcul中

2024-04-26 19:04:23 发布

您现在位置:Python中文网/ 问答频道 /正文

这只是为了学习。我想做以下事情。你知道吗

x = 5.0
y = 888.0
z= y / x
print z # 177.6
...?

现在我想将浮点的最后一部分改为int,并将浮点的最后一个数字(.6)作为6添加到第一个数字(从177.6得到777)。之后,我想把777和y的差加到一个新变量中,得到888。你知道吗

如果有人能解释一下怎么做就好了!:) 编辑:在这篇文章的最后一个代码可能的解决方案。你知道吗

本文的目的是理解如何在python中执行这些任务,并更好地理解我称之为“数学对称”的东西。你知道吗

您可以在执行以下计算时发现这种对称性:

666 / 5.0 #133.2
777 / 5.0 #155.4
888 / 5.0 #177.6
999 / 5.0 #199.8
666.6 / 5.0 #133.32

我不是学者,所以这听起来很疯狂。这只是我意面怪兽头脑中理论的一部分,通过一个脚本,我可以进一步调查这是怎么回事。;)

在注释的帮助下,我能够创建这个代码。我敢肯定,从专业程序员的角度来看,它看起来很难看,但嘿,这是我的第一步,我对此非常高兴!再次感谢!:)

x = 5.0
y = 888.0
z= y / x
print z # 177.6
print
a = int(str(z)[0])
print "First Number = " + str(a)
print
b = int(str(z)[1])
c = int(str(z)[2])
print "In between = " + str(b) + str(c)
d = int(str(z)[-1]) # treat z as string, take first string after . from z and format it back to int
print "Last Number = " + str(d)
print
res = str(a+d) +str(b) +str(c)
to_int = int(res)
dif = y - to_int
add = to_int + dif
print add

编辑:在这段代码中有什么神奇的事情发生吗?实际的代码似乎是用来计算像777.7这样的数字的,但是当我用y=7277.7727运行它时,即使中间只有两个数字,它也会给出正确的输出?我以为计算错了。o0公司

编辑:已解决。计算中的逻辑错误产生了意外的结果。实际上,最后我在打印y。xD公司


Tags: to代码add编辑numberstring公司res
1条回答
网友
1楼 · 发布于 2024-04-26 19:04:23

我认为最安全的方法是使用字符串操作:

int(str(177.123)[-1])
3

int(str(177.123).split('.')[-1])
123

但我担心你最终会被浮点精度问题所困扰。像sympy这样的符号数学包可能比标准浮点算法更适合您的用途。你知道吗

相关问题 更多 >