2016-09-05 4 views
0

Что 1.e0 значит, в следующем кодеЧто 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++ кода, и как я могу написать 1.e0 в C#

+2

попробовать '1.0' с 1 * (10 в степени 0) 1 –

+0

Вы можете to google для типов номеров C#, констант, форматов и т. д. до тех пор, пока вы не придумаете 1e0 ;-) – TaW

+0

[Литерал с плавающей точкой] (http://en.cppreference.com/w/cpp/language/floating_literal). – IInspectable

ответ

0
<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 

Вы можете увидеть эти обозначения на калькуляторах. Когда результат слишком велик и не будет вписываться в дисплей в противном случае, калькулятор автоматически переключится на экспоненциальную нотацию.

enter image description here

В 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)

1

Обеспечение что 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

Смежные вопросы