string - Dart double toStringAsFixed 对数字进行四舍五入,但它不应该

标签 string flutter dart parsing double

我有一个 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/

相关文章:

swift - 无法将值类型 "string?"转换为预期的参数类型 "inout string"

dart - 如何为银条列表中的单个项目设置动画

flutter - flutter_bloc:构建函数返回null

dart - 在 Flutter 应用程序的 ListView 滚动条上隐藏/关闭键盘

flutter - 使用提供程序重写嵌套的 Navigator 2.0 示例

google-app-engine - 在Google App Engine VM中手动运行dart服务器

javascript: string.replace 不起作用

c++ - 将内置数据类型转换为 std::string:memcpy vs snprintf

c - 如何在字符串数组中为某个新字符串动态分配内存并将该字符串复制到 C 中动态分配的空间中?

user-interface - 如何在 Flutter 中使用锚定按钮制作灵活的列表布局?