当我这样做时:
float x = float.MaxValue;
我的结果是:3.40282347E + 38
什么是E + 38?如何在没有此符号的情况下表示最大数量?
msdn说RANGE:±1.5×10 ^ -45到±3.4×10 ^ 38,但这对我没有帮助。答案 0 :(得分:26)
“E + 38”格式是默认格式。如果您想查看整数,请指定不同的格式:
float.MaxValue.ToString("#")
这将导致:
340282300000000000000000000000000000000
以下是一些其他格式:http://msdn.microsoft.com/en-us/library/system.globalization.numberformatinfo.aspx
答案 1 :(得分:11)
这称为E-Notation(指数表示法),并与科学记数法一起使用。
来自E Notation section of the Wikipedia article on Scientific Notation:
因为像10 ^ 7这样的超级脚本指数并不总是如此 方便地显示,字母E或e通常用于表示 十次提升到的力量(写成“x 10 ^ b”) 然后是指数的值。
因此,3.40282347E+38
等于3.40282347 * 10
38
,并且会被读作“3.40282347乘以10到38的幂”。
答案 2 :(得分:5)
请尝试以下代码:
float f = float.MaxValue;
Console.WriteLine("Origianl Value: " + f);
Console.WriteLine("With Zeros:" + f.ToString("0"));
值
Origianl Value: 3.402823E+38
With Zeros:340282300000000000000000000000000000000
答案 3 :(得分:2)
5E+2 =
5 x 10 ^ 2 =
5 x 10 * 10 =
5 * 100 =
500
换句话说,就是移动小数点以计算结果的小数位数。取5,将它移动2个位置,最后得500.在你的例子中,你需要取你的数字3.40282347
并将小数位移38次!
答案 4 :(得分:1)
这是约。 340 000 000 000 000 000 000 000 000 000 000 000 000 000
如果你使用Dan的代码,你会得到这个结果:
340282300000000000000000000000000000000
答案 5 :(得分:0)
3.4e38是3.4 * 10 ^ 38或340000000000 ......(37个零)
其他信息:
http://msdn.microsoft.com/en-us/library/b1e65aza(v=vs.71).aspx
答案 6 :(得分:0)
老问题,但这是字符串格式的最小值和最大值。
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
答案 7 :(得分:0)
无指数浮点数最大为:340282356779733661637539395458142568447.9f
答案 8 :(得分:0)
使用 float.MaxValue
显示 ToString
的答案不正确。
这些答案说明 float.MaxValue
是:
var f1 = 340282300000000000000000000000000000000f;
这只是 C# 在将 float.MaxValue
转换为字符串时产生的结果。
然而,float.MaxValue
在 System.Single
中被定义为 3.40282347E+38F
所以实际的答案是:
var f2 = 340282347000000000000000000000000000000f;
另请注意,编译缺陷将允许高于此值的常量值用作浮点数。但是,在编译时,C# 会将这些值截断为 float.MaxValue
。例如:
var f3 = 340282356699999999999999999999999999999f;
var f4 = 340282356760000000000000000000000000000f;
var f5 = 340282356779733661637539395458142568447.9f;
这里 f5 (340282356779733661637539395458142568447.9f
) 是您可以定义的实际最大常数。同样,这被截断为 float.MaxValue
。
这都可以验证:
var equals_1 = f1 == f; // false
var equals_2 = f2 == float.MaxValue; // true
var equals_3 = f3 == float.MaxValue; // true
var equals_4 = f3 == float.MaxValue; // true
var equals_4 = f5 == float.MaxValue; // true
答案 9 :(得分:-2)
很抱歉,死了一个旧线程,但是google将我引到了这里,但我没有找到满意的答案。我确定Google会带领这里的其他人。
float.h库在c中包含float和其他最大值。 FLOAT_MAX等于340282346638528859811704183484516925440,即float可以存储的最大值。
我不是C语言方面的专家,但我想这个值是通用的,并且不依赖于x32或x64操作系统。