以下代码中的 1.e0 是啥意思

Posted

技术标签:

【中文标题】以下代码中的 1.e0 是啥意思【英文标题】:What does 1.e0 mean in the following code以下代码中的 1.e0 是什么意思 【发布时间】:2016-09-05 19:21:21 【问题描述】:

下面代码中的1.e0是什么意思

product *=
 ((1.e0-pow((double)2,i-32))*(1.e0-pow((double)2,i-32)))/(1.e0-pow((double)2,i-r));

这是c++代码,我怎么能用c#写1.e0

【问题讨论】:

尝试1.0,因为 1*(10 的 0 次方)是 1 你可能想在谷歌上搜索 c# 数字类型、常量、格式等。直到你想出 1e0 ;-) Floating point literal. 1. == 1.0 == 1.00 = ... = 1e0 == 1.e0 == 1.0e0 == 1.00e0...;所有这些数字都是double 代表1 我认为1e0d可能更正确 【参考方案1】:
<number>e<power> = <number> * 10^<power>

其中的幂是十的幂。基本上e 之后的数字告诉您如果它是正数,您必须附加多少个零。负幂使数字向右移动一位。

例子

1.2e-3 = 1.2 * 10^-3 = 1.2 *    0.001 =    0.0012
1.2e-2 = 1.2 * 10^-2 = 1.2 *    0.01  =    0.012
1.2e-1 = 1.2 * 10^-1 = 1.2 *    0.1   =    0.12
1.2e0  = 1.2 * 10^0  = 1.2 *    1     =    1.2
1.2e1  = 1.2 * 10^1  = 1.2 *   10     =   12
1.2e2  = 1.2 * 10^2  = 1.2 *  100     =  120
1.2e3  = 1.2 * 10^3  = 1.2 * 1000     = 1200

你可以在计算器上看到这个符号。当结果太大而无法显示时,计算器会自动切换到指数表示法。

在 C# 中,您可以这样编写公式:

product *= (1 - Math.Pow(2, i - 32)) * (1 - Math.Pow(2, i - 32)) /
           (1 - Math.Pow(2, i - r));

自动转换为double。一对括号是多余的。一个子表达式出现两次,你可以这样写:

double temp = 1 - Math.Pow(2, i - 32);
product *= temp * temp / (1 - Math.Pow(2, i - r));

见: - Math.Pow Method (Double, Double) (msdn)

【讨论】:

【参考方案2】:

假设pow 正在崛起,C# 代码将是

product *= (1.0 - Math.Pow(2, i - 32)) *
           (1.0 - Math.Pow(2, i - 32)) /
           (1.0 - Math.Pow(2, i - r)); 

如您所见,1.e0 只是 1.0 - double 表示 1

【讨论】:

以上是关于以下代码中的 1.e0 是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

请问以下JS代码中的括号是啥意思?

NetHack 源代码中的“NEARDATA”是啥意思?

JavaScript/jQuery 中括号中的代码块是啥意思? [复制]

Python 中的 @ 和 lambda 是啥意思? [复制]

Ruby 中的“猴子补丁”到底是啥意思?

Javascript 中的 !function 是啥意思? [复制]