首页 > 解决方案 > 如何将 std::ffi::OsString 转换为 f64 或 f32

问题描述

我正在使用函数获取第二个参数,并希望将其从 std::ffi:OsString 转换为浮点数或双精度数。我目前有以下代码,但解析不起作用。

fn get_second_arg() -> Result<f64, Box<dyn Error>> {
    match env::args_os().nth(2) {
        None => Err(From::from("expected 2 arguments")),
        Some(min_balance) =>  {
            let min_balance_f64: f64 = min_balance.parse()?
            Ok(min_balance_f64)
        }
    }
} 

我得到错误:

no method named `parse` found for struct `std::ffi::OsString` in the current scope

标签: rusttype-conversion

解决方案


std::ffi::OsString有一个into_string返回的成员,Result<String, OsString>您可以在其中提取Ok变量并调用String::parse.


推荐阅读