rust 把vec string转为f64
时间: 2024-08-16 15:07:40 浏览: 115
在 Rust 中,将 `Vec<String>` 转换为 `Vec<f64>`,需要遍历字符串向量,解析每个字符串作为浮点数(`f64`),如果解析成功则将其添加到新的 `Vec<f64>` 中。由于 Rust 的安全性和类型系统,转换前通常需要确保字符串确实可以被解析为浮点数。以下是一个示例:
```rust
use std::str::FromStr;
fn convert_to_f64(vec_strings: Vec<String>) -> Result<Vec<f64>, String> {
let mut result = Vec::new();
for s in vec_strings {
match FromStr::from_str(&s) {
Ok(f64_val) => result.push(f64_val),
Err(_) => return Err(format!("无法解析字符串 {}: {}", s, e)),
}
}
Ok(result)
}
// 示例
let vec_strings = vec!["1.5", "2.7", "3.1"];
match convert_to_f64(vec_strings) {
Ok(unique_floats) => println!("{:?}", unique_floats),
Err(e) => println!("错误: {}", e),
}
```
在这个例子中,`FromStr::from_str` 尝试将字符串转换成 `f64`。如果转换成功(`Ok(f64_val)`),我们就将其添加到结果向量;如果失败(`Err(e)`),我们返回一个错误信息。
阅读全文