Python 为什么这个变量会自动四舍五入?
我不熟悉堆栈溢出,但现在已经使用python大约两个月了。我比较有经验,但不知道为什么在打印变量“why”时会自动循环。我正在创建一个脚本,从图形上的两点查找坡度截距形式。感谢您的帮助。 -诺亚 编辑更改的变量名int(n)将返回一个整数。如果n是一个浮点,它将被截断 两个整数之间的差(令人惊讶地…)是一个整数,因此是的,最终结果是一个截断的整数Python 为什么这个变量会自动四舍五入?,python,rounding,Python,Rounding,我不熟悉堆栈溢出,但现在已经使用python大约两个月了。我比较有经验,但不知道为什么在打印变量“why”时会自动循环。我正在创建一个脚本,从图形上的两点查找坡度截距形式。感谢您的帮助。 -诺亚 编辑更改的变量名int(n)将返回一个整数。如果n是一个浮点,它将被截断 两个整数之间的差(令人惊讶地…)是一个整数,因此是的,最终结果是一个截断的整数 考虑使用float(n)而不是int(n)。整数之间的差总是“四舍五入”…您的变量真的命名为“为什么?”?-但无论如何:正如让·弗朗索瓦所提到的,根据
考虑使用float(n)而不是int(n)。整数之间的差总是“四舍五入”…您的变量真的命名为“为什么?”?-但无论如何:正如让·弗朗索瓦所提到的,根据定义,整数没有小数部分……整数是四舍五入的吗?或者你想把它转换成浮点数?你用的是什么版本的Python?整数除法在Python 2中循环,在Python 3中转换为浮点。将所有出现的
int
替换为float
,您应该可以开始了。它们将字符串转换为int
,而不是任意数。因此,如果n
是一个(字符串表示的)浮点,它将抛出一个错误。谢谢,我不知道为什么我如此愚蠢,将int的最后一个实例更改为float使脚本工作可能是真的,但它仍然很难看,因为您的脚本充满了免费的强制转换。在input()
函数之后应用一个有意义的强制转换,因为您想在这里更改类型:string不适合计算,所以请根据需要选择一种类型。从那时起,你可以离开铸造。
#Y=mx+b
x1, y1 = input("X1,Y1: ").split(",")
x2, y2 = input("X2,Y2: ").split(",")
print("\n")
Xdif = (int(x1) - int(x2))
Ydif = (int(y1) - int(y2))
Yslope = (int(Ydif) * int(x1))
if(Xdif == 0):
print("Slope is Undefined")
else:
Slope = (int(Yslope) / int(Xdif))
if(int((Slope*10) % 10) == 0):
SlopeN, bad = str(Slope).split(".")
print("Slope:",SlopeN)
else:
print("Slope:",Slope)
Why = (int(y1) - int(Slope))
print(Why)