我试图创建一个返回两行之间交叉点的函数。以下是我的代码。
fn main() {
let line_1: (f64, f64) = (-2.0, 9.5);
let line_2: (f64, f64) = (1.0, -2.0);
let x_1: f64 = (line_2.1 - line_1.1) / (line_1.0 - line_2.0);
let y_1: f64 = line_1.0.mul_add(x_1, line_1.1);
let x_2: f64 = (line_1.1 - line_2.1) / (line_2.0 - line_1.0);
let y_2: f64 = line_2.0.mul_add(x_2, line_2.1);
println!("x_1: {}, y_1: {}", x_1, y_1);
println!("x_2: {}, y_2: {}", x_2, y_2);
}
数学上x_1与x_2相等,y_1与y_2相等。相反,这是打印的价值。
x_1: 3.8333333333333335, y_1: 1.833333333333333
x_2: 3.8333333333333335, y_2: 1.8333333333333335
该值不应该包含五个,而y_1值与y_2不同。这是某种错误,还是我在处理浮动数据时遇到的一些步骤?