c# - 为什么 Math.Round(3.13732294754486E-12, 2) 为零?
问题描述
我想做这个:
var x = Math.Round(item.Distance.Value, 2)
距离值为:3.13732294754486E-12
。
该值从HttpClient
结果中返回。
将x
为零。为什么会这样?我期待3.14
结果。
解决方案
正如评论所指出的,可能存在解析问题。但是,如果我们从表面上看...
该符号E
是指数符号。很多语言都支持它,包括 C#
a E b = a x 10^b
, 例如2.1E2 = 2.1 x 10^2 = 2.1 x 100 = 210
在您的示例中,我们将 3.13... 乘以10^-12 = 0.000000000001
或0.0000000000031....
Math.Round(0.00000000000031...., 2)
确实是零。
推荐阅读
- google-apps-script - 是否可以为 Google 表单生成自动填充脚本?
- google-apps-script - 需要优化 Google Apps 脚本以减少脚本运行时间
- python - 如何在 matplotlib 中使用渲染球做散点图?
- php - 启用 bcmath 模块 PHP 7.2 服务器 CLI
- angular - JWT 拦截器删除 contenttype 标头
- python - 在整个数据帧中搜索变量并返回第一次出现的切片
- c# - 如何从 .Net Core 项目/解决方案中删除 .ncrunchproject 文件(或任何其他类似文件)
- python - Pandas 中 LISTAGG 的等价物是什么?
- java - waitForAngularRequestsToFinish() -- 有什么用?
- ruby - 测试:使用自我,预期:1 次收到参数:0 次