< 返回版块

novemberfive 发表于 2020-07-29 11:28

Tags:float加法

use std::fmt::{self, Formatter, Display};

struct Point {
    x: f32,
    y: f32,
}

impl Display for Point {
    fn fmt(&self,f: &mut Formatter) -> fmt::Result {
        write!(f,"( x:{}, y:{})", self.x, self.y)
    }
}

fn float_add(point: Point, side: f32) -> f32 {
    println!("{:?} + {:?} = {:?} ", point.y, side, point.y + side);
    
    point.y + side
}

fn main() {
    float_add(Point { x: 0.4, y: 0.4 }, 4.8);
    println!("0.4 + 4.8 = {}",0.4+4.8);
}

评论区

写评论
作者 novemberfive 2020-07-29 13:06

原来如此,多谢

--
👇
Neutron3529: 这难道不正常吗?

前面那个是两个float,相加,得结果

后面的是,f64+f64

自然结果不同。

你算算这个就明白了

fn main() {
    float_add(Point { x: 0.4, y: 0.4 }, 4.8);
    println!("0.4 + 4.8 = {}",0.4f32+4.8f32);
}

没事别用f32


👇
novemberfive: 执行结果

0.4 + 4.8 = 5.2000003
0.4 + 4.8 = 5.2
Neutron3529 2020-07-29 11:41

这难道不正常吗?

前面那个是两个float,相加,得结果

后面的是,f64+f64

自然结果不同。

你算算这个就明白了

fn main() {
    float_add(Point { x: 0.4, y: 0.4 }, 4.8);
    println!("0.4 + 4.8 = {}",0.4f32+4.8f32);
}

没事别用f32


👇
novemberfive: 执行结果

0.4 + 4.8 = 5.2000003
0.4 + 4.8 = 5.2
作者 novemberfive 2020-07-29 11:29

执行结果

0.4 + 4.8 = 5.2000003
0.4 + 4.8 = 5.2
1 共 3 条评论, 1 页