c# - 为什么解析具有浮点值的字符串会给我点后有大量数字的数字
问题描述
我有以下代码
app.First.SelectToken("averageScore")?.ToString()
Newtonsoft
它在库的帮助下解析 json 。
这是结果
“4,8”
但是当我尝试将其转换为双倍时,我得到以下结果:
“4.7999999999999998”
代码:
double.Parse(app.First.SelectToken("averageScore")?.ToString())
但我需要双4.8。如何得到它?对于十进制,这种方式工作得很好。但我需要双倍。
解决方案
这与尝试将数字表示1/3
为小数时遇到的问题相同:您不能精确地做到这一点。在这种情况下,.8
十进制值没有以 2 为底的精确表示,因此您会得到一个不完美的近似值。使用该类型可能会做得更好decimal
,但仍然需要小心。
推荐阅读
- python - 如果长度为 x,则使用 Pandas 为字符串列中的每个值添加字符串前缀
- angular - 使用幻灯片进行离子单元测试会引发 TypeError
- python - 在数据帧中混合两个传感器数据关于时间戳条件
- node.js - 如何在打字稿中检查模块版本?
- javascript - purchaseUpdatedListener 购买成功后不会每次都在IOS调用。请帮助我如何在IOS中管理purchaseUpdatedListener
- python - 由 QSqlRelationalDelegate/QSqlRelation 提供的过滤选项根据一些 WHERE close
- php - 我只是复制代码,但遇到“需要符号名称”的问题
- python - Python用字典中的随机值填充多列
- c# - Swagger 模式中派生类的 order 属性优先
- python - 有没有办法将普通字符列表替换为自定义字符列表?