c# - 如何修复python浮点数指数结果
问题描述
我在 python 中玩数据类型。
每次,当我这样做
remaining_amount = .1 + .1 + .1 - .3
python给出指数结果。
我尝试对 c# 做同样的事情
double remainingAmount = .1 + .1 + .1 - .3
它也以指数形式给出结果。
在这两种情况下,结果都是5.55111512312578E-17
但是在c#中,当我将 double 更改为 decimal 时,结果为 0.0
我无法理解为什么这两种语言都会发生这种情况。我怎样才能在python中解决这个问题?
解决方案
那是数字的Python表示,数字还是一样的。您可以使用它格式化字符串以用于打印目的,例如:
>>> remaining_amount = .1 + .1 + .1 - .3
>>> remaining_amount
5.551115123125783e-17
>>> f"{remaining_amount:.50f}"
'0.00000000000000005551115123125782702118158340454102'
推荐阅读
- javafx - 显示的 Ikonli 图标不正确
- google-sheets - 是否有可能在谷歌文档中创建基于查询的图表?
- aws-lambda - CloudFormation 无服务器函数堆栈错误 - GetObject 发生错误。S3 错误代码:NoSuchKey
- java - 防止菜单超出屏幕尺寸
- javascript - 在单击 JS 初学者时从外部源替换图像
- webpack - 如何使用 `style-loader` 缩小 SCSS 并注入 DOM
- azure - Azure AD B2C:强制密码重置首次登录不起作用(使用自定义策略)
- flutter - Flutter 错误:没有为类 '_HomePageState' 定义 getter 'AudioPlayerState'
- java - 使用 Xtext 2.25 进行密钥形式验证
- json - 如何使用角度在 json/json 内的对象内显示数据