【问题标题】:How to convert Hexadecimal to Double in Dart?如何在 Dart 中将十六进制转换为双精度?
【发布时间】:2022-07-21 20:12:09
【问题描述】:

通过接收编码为十六进制的坐标,我如何将它们转换为双精度值,以便获得这些坐标的真实值?我已经尝试从十六进制转换为整数,然后再转换为双倍,但我无法获得正确的值。有没有可以这样的 Dart 包?

我试过double.parse() return Invalid Double Exception

作为参考,我将以下十六进制作为字符串:

4044B84189374BC1

应该返回如下内容:

41.43949999999996

我用那些在线转换器进行了测试,但我找不到使用 Dart 语言的方法

【问题讨论】:

    标签: android dart floating-point hex double


    【解决方案1】:

    这有点奇怪,但以下似乎可以解决问题:

    import 'dart:typed_data';
    
    void main() {
      print(convert('4044B84189374BC1')); // 41.43949999999996
    }
    
    double convert(String hexString) =>
        (ByteData(8)..setUint64(0, int.parse(hexString, radix: 16))).getFloat64(0);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-03
      • 2019-08-13
      • 2018-02-28
      • 2014-02-07
      • 2014-05-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多