Подтвердить что ты не робот

Максимальное значение для типа float в С#

когда я делаю это:

float x = float.MaxValue;

У меня есть результат: 3.40282347E + 38

Что такое E + 38? как я могу представить максимальное число без этого символа?

msdn говорит RANGE: ± 1,5 × 10 ^ -45 до ± 3,4 × 10 ^ 38, но это мне не помогло.

4b9b3361

Ответ 1

Формат "E + 38" по умолчанию. Если вы хотите увидеть весь номер, укажите другой формат:

float.MaxValue.ToString("#")

Это приведет к:

340282300000000000000000000000000000000

Вот несколько дополнительных форматов: http://msdn.microsoft.com/en-us/library/system.globalization.numberformatinfo.aspx

Ответ 2

Это E Notation, используемое иногда с научной нотацией. Это означает "10 к силе"

Из раздела E Notation статьи Википедии о научной нотации:

Поскольку индексы с индексом, такие как 10 ^ 7, не всегда могут быть удобно отображаться, буква E или e часто используется для представления раз десять повышалось до степени (которая была бы записана как "x 10 ^ b" ) и за ним следует значение показателя.

Итак, 3.40282347E+38 равно 3.40282347 * 10^38

Ответ 3

Попробуйте использовать следующий код:

float f = float.MaxValue;
Console.WriteLine("Origianl Value: " + f);
Console.WriteLine("With Zeros:" + f.ToString("0"));

Значение

Origianl Value: 3.402823E+38
With Zeros:340282300000000000000000000000000000000

Ответ 4

Это Научная нотация.

5E+2 = 
5 x 10 ^ 2 = 
5 x 10 * 10 = 
5 * 100 =
500

Другими словами, сколько десятичных знаков вы перемещаете десятичную точку для вычисления результата. Возьмите 5, переместите их на 2 места, в итоге на 500. В вашем примере вам нужно взять ваш номер 3.40282347 и переместить десятичное место более чем в 38 раз!

Ответ 5

Это ок. 340 000 000 000 000 000 000 000 000 000 000 000 000

Если вы используете код Дэн, вы получите это как результат:

340282300000000000000000000000000000000

Ответ 7

Старый вопрос, но здесь мин и макс в строковом формате.

Using float.Parse
-340282356779733642999999999999999999999 to 340282356779733642999999999999999999999
Using float.MinValue.ToString("#") and float.MaxValue.ToString("#")
-340282300000000000000000000000000000000 to 340282300000000000000000000000000000000
Using float.MinValue.ToString() and float.MaxValue.ToString()
-3.402823E+38 to 3.402823E+38