我有一个 Flutter 项目,在 SharedPrefs 中,我存储来自第三方 API 的双 ID。 (所以我只能得到 double )
首选项中的 ID 为 43449716574226770.0
我必须将这个 double 解析为字符串,我这样做:
String idString = id.toStringAsFixed(0)
我得到的是:43449716574226768
,但我希望它只是43449716574226770
我也尝试过.toInt().toString()
,结果相同。
最奇怪的部分是它有时可以与其他 id 一起使用。
最佳答案
这个数字是否会在 6 字节范围内? 由于将其与指数部分相加,这可能意味着前一个 double (按位)的差异将超过 1。另请参阅 java Math.ulp .
这意味着使用double
而不是long
将一些双ID映射到相同的“长”ID。
我不确定这就是这里的问题,但它可以解释 2 的偏差。
关于string - Dart double toStringAsFixed 对数字进行四舍五入,但它不应该,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69523698/