когда я делаю это:
float x = float.MaxValue;
У меня есть результат: 3.40282347E + 38
Что такое E + 38? как я могу представить максимальное число без этого символа?
msdn говорит RANGE: ± 1,5 × 10 ^ -45 до ± 3,4 × 10 ^ 38, но это мне не помогло.
когда я делаю это:
float x = float.MaxValue;
У меня есть результат: 3.40282347E + 38
Что такое E + 38? как я могу представить максимальное число без этого символа?
msdn говорит RANGE: ± 1,5 × 10 ^ -45 до ± 3,4 × 10 ^ 38, но это мне не помогло.
Формат "E + 38" по умолчанию. Если вы хотите увидеть весь номер, укажите другой формат:
float.MaxValue.ToString("#")
Это приведет к:
340282300000000000000000000000000000000
Вот несколько дополнительных форматов: http://msdn.microsoft.com/en-us/library/system.globalization.numberformatinfo.aspx
Это E Notation, используемое иногда с научной нотацией. Это означает "10 к силе"
Из раздела E Notation статьи Википедии о научной нотации:
Поскольку индексы с индексом, такие как 10 ^ 7, не всегда могут быть удобно отображаться, буква E или e часто используется для представления раз десять повышалось до степени (которая была бы записана как "x 10 ^ b" ) и за ним следует значение показателя.
Итак, 3.40282347E+38
равно 3.40282347 * 10^38
Попробуйте использовать следующий код:
float f = float.MaxValue;
Console.WriteLine("Origianl Value: " + f);
Console.WriteLine("With Zeros:" + f.ToString("0"));
Значение
Origianl Value: 3.402823E+38
With Zeros:340282300000000000000000000000000000000
Это Научная нотация.
5E+2 =
5 x 10 ^ 2 =
5 x 10 * 10 =
5 * 100 =
500
Другими словами, сколько десятичных знаков вы перемещаете десятичную точку для вычисления результата. Возьмите 5, переместите их на 2 места, в итоге на 500. В вашем примере вам нужно взять ваш номер 3.40282347
и переместить десятичное место более чем в 38 раз!
Это ок. 340 000 000 000 000 000 000 000 000 000 000 000 000
Если вы используете код Дэн, вы получите это как результат:
340282300000000000000000000000000000000
3.4e38 - 3.4 * 10 ^ 38 или 340000000000... (37 нулей)
дополнительная информация:
http://msdn.microsoft.com/en-us/library/b1e65aza(v=vs.71).aspx
Старый вопрос, но здесь мин и макс в строковом формате.
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