我正在学习Rust,但是当我打印一个十进制数字时,只打印整数部分,而不是小数部分:
fn main(){
println!("{:.3}", 22/7);
}
// This only show 3
但是当我明确打印十进制数字时,它可以正常工作:
fn main(){
println!("{:.3}", 0.25648);
}
// this print 0.256
答案 0 :(得分:20)
就像在C和C ++中一样,除以整数会产生另一个整数。试试这个C ++程序,看看:
fn main() {
println!("{:.3}", 22 / 7); // 3
println!("{:.3}", 22.0 / 7.0); // 3.143
}
类似地,在Rust中,您需要将两个数字指定为浮点数,这可以通过在数字中的任意位置放置小数来完成。试试这个Rust相当于上面的程序:
MediaPlayer
答案 1 :(得分:17)
当您使用整数变量并且没有添加小数点的选项时,您可以使用as
keyword将整数变量转换为浮点数:
fn main() {
let a = 42;
let b = 23;
let c = a / b; // integer division
let d = a as f64 / b as f64; // cast both variables to float before division
println!("integer division: {}\nfloat division: {}", c, d);
}
返回以下值:
integer division: 1
float division: 1.826086956521739