Python 为什么结果是一个循环数,而它应该是一个整数?

Python 为什么结果是一个循环数,而它应该是一个整数?,python,numpy,Python,Numpy,大家好,我正在为类编写一些代码,这是为线性回归编写的。 对于代码中可以看到的数据,手动计算的值为a=1.7和b=1.6 我尝试过将公式的不同部分分成不同的变量,但答案是一样的(1.6999999993) 预期结果是a=1.7和b=1.6,但输出是a=1.699999999993。这是因为您使用的是floatnumber,二进制浮点数学是这样的。在大多数编程语言中,它基于 import numpy as np x=np.array([2,3,5,6]) y=np.array([4.5,7.

大家好,我正在为类编写一些代码,这是为线性回归编写的。
对于代码中可以看到的数据,手动计算的值为a=1.7和b=1.6

我尝试过将公式的不同部分分成不同的变量,但答案是一样的(1.6999999993)


预期结果是a=1.7和b=1.6,但输出是a=1.699999999993。

这是因为您使用的是
float
number,二进制浮点数学是这样的。在大多数编程语言中,它基于

import numpy as np  
x=np.array([2,3,5,6])  
y=np.array([4.5,7.2,9.2,11.5])  
b=(np.sum((y-np.mean(y))*x))/(np.sum((x-np.mean(x))*x))  
a=np.mean(y)-(b*(np.mean(x)))  
print(a)   
print(b)  

请参见这是因为您使用的是
float
number,二进制浮点数学是这样的。在大多数编程语言中,它基于

请参见

它基于

但是如果你想让你的结果以‘a=1.7’的形式出现。那么你可以试试这个

import numpy as np  
x=np.array([2,3,5,6])  
y=np.array([4.5,7.2,9.2,11.5])  
b=(np.sum((y-np.mean(y))*x))/(np.sum((x-np.mean(x))*x))  
a=np.mean(y)-(b*(np.mean(x)))  
a = "%.1f"% (a)
print(a)   
print(b)  
它是基于

但是如果你想让你的结果以‘a=1.7’的形式出现。那么你可以试试这个

import numpy as np  
x=np.array([2,3,5,6])  
y=np.array([4.5,7.2,9.2,11.5])  
b=(np.sum((y-np.mean(y))*x))/(np.sum((x-np.mean(x))*x))  
a=np.mean(y)-(b*(np.mean(x)))  
a = "%.1f"% (a)
print(a)   
print(b)  

1.7不是整数。1.7不是整数。