string - 如何将 f64 转换为 String 并解析回 f64?

标签 string parsing serialization rust numbers

let s = format!("{}", t);
let x = s.parse::<f64>();

如果t的类型为f64,是否会出现解析回f64失败的情况?

最佳答案

看来并非如此。该程序涵盖了所有有趣的边缘情况,例如NaN、Infinity、Negative Infinity 等,并且编译和运行良好,不会出现 panic :

fn check_serialization_eq(nums: &[f64]) {
    for num in nums {
        let s = num.to_string();
        let x = s.parse::<f64>().unwrap();
        dbg!(num, x);
    }
}

fn main() {
    check_serialization_eq(&[
        f64::MIN,
        f64::MAX,
        f64::NAN,
        f64::INFINITY,
        f64::NEG_INFINITY,
        f64::EPSILON,
    ]);
}

playground

关于string - 如何将 f64 转换为 String 并解析回 f64?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65345546/

相关文章:

使用 perl 的 HTML 解析器

c# - Unity 将嵌套字典序列化为 JSON

java - 使用Python反序列化Java org.apache.kafka.common.serialization序列化对象

c++ - Protocol Buffer 如何支持标准容器的序列化/反序列化?

c++ - 将字符串中的字符与给定字符进行比较

javascript - 是否有一个 native 函数来获取 javascript 中的前缀数字?

ios - 在 Objective C 中将字符串转换为 float 而不对其进行舍入。?

java - 如何使用 Perl 识别对 Java 类的引用?

c++ - 如何在C++中转换为utf8字符串

java - 文本文件解析 - 使用 mwe2 (Xtext) 实例化 Java Bean