android - 颤振计算错误
问题描述
颤振计算中的错误,这是一个非常有趣的结果:
print('result ${43.12 - 93.12 + 50}');
输出->结果-7.105427357601002e-15
print('result ${43.12 + 50 - 93.12}');
输出 -> 结果 0
解决方案
您需要将结果转换为Double或避免在 2 位小数之后的值。
print('result ${43.12 - 93.12 + 50}'); // result -7.105427357601002e-15
print('result ${43.12 + 50 - 93.12}'); // result 0
print('result ${(43.12 - 93.12).toDouble() + 50}'); // result -7.105427357601002e-15
只是因为在第二行它会做增量43.12 + 50显然是固定的 93.12。但是在第一个中,您要减去两个双精度数,结果将是43.12 - 93.12 将是 -50.00000000000001,小数点后有 14 位数字,应转换为小数点后两位数。
并且-50.00000000000001 + 50将作为指数值-7.105427357601002e-15
希望你能理解。
谢谢你。
推荐阅读
- node.js - Express.js http响应是否默认返回一个promise
- python - 我如何在 django 中使用模型对象预先填写表单字段
- android - 如何在android框架[AOSP] java文件(不是Android Studio或Java IDE)中使用像jsoup库这样的外部jar
- c# - 通用参数多个 where 子句问题
- javascript - 将子集合添加到 Firestore
- rust - 如何避免 filter_map() 在 Rust 中给出错误“返回引用当前函数拥有的数据的值”?
- json - 反序列化 json 以查找映射 Android Kotlin 的对象
- python - 停止通过 SSH 运行的远程脚本
- symfony - @Assert\NotBlank 无法识别
- r - 如何在 R 中读取 .rdata 文件