以下代码中的 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 是啥意思的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript/jQuery 中括号中的代码块是啥意思? [复制]