Я сделал простой решатель системы линейных уравнений, используя массивы NumPy. У меня под рукой два массива: один 2x2 (A) и один 2x1 (B).
Обращая первое с помощью Ainv = np.linalg.inv(A)
и затем умножая его на второе с помощью Ainv.dot(B)
, я получаю третий массив 2x1 с моими желаемыми значениями x и y, который возвращается функцией, называемой solveLin()
кстати.
Теперь, если я распечатаю print(solveLin())
с переменными на месте, я получу массив [[-8.]
[ 5.]]
с правильными значениями.
Однако, если я выберу значения, например, print(solveLin()[0][0])
, я получу -7.999999999999998
и 4.999999999999999
в качестве ответов.
Если я выставлю их как целые числа, они станут -7 и 4
Редактировать: Я понимаю, почему плавающие числа действуют таким образом, но я не понимаю, почему они отображаются одним способом в массиве, а затем другим способом при прямом вызове.