首页 > 解决方案 > 为什么 Math.Round(3.13732294754486E-12, 2) 为零?

问题描述

我想做这个:

var x = Math.Round(item.Distance.Value, 2)

距离值为:3.13732294754486E-12

该值从HttpClient结果中返回。

x为零。为什么会这样?我期待3.14结果。

标签: c#

解决方案


正如评论所指出的,可能存在解析问题。但是,如果我们从表面上看...

该符号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.0000000000010.0000000000031....

Math.Round(0.00000000000031...., 2)确实是零。


推荐阅读