Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# c中浮点型的最大值#_C# - Fatal编程技术网

C# c中浮点型的最大值#

C# c中浮点型的最大值#,c#,C#,当我这样做时: float x = float.MaxValue; 我得到的结果是:3.40282347E+38 什么是E+38?没有此符号,我如何表示最大数量 msdn表示范围:±1.5×10^−45到±3.4×10^38,但这对我没有帮助。3.4e38是3.4×10^38或3400000000000。。。(37零) 其他信息: 默认为“E+38”格式。如果要查看整数,请指定以下不同格式: float.MaxValue.ToString("#") 这将导致: 340282300000000

当我这样做时:

float x = float.MaxValue;
我得到的结果是:3.40282347E+38

什么是E+38?没有此符号,我如何表示最大数量


msdn表示范围:±1.5×10^−45到±3.4×10^38,但这对我没有帮助。

3.4e38是3.4×10^38或3400000000000。。。(37零)

其他信息:

默认为“E+38”格式。如果要查看整数,请指定以下不同格式:

float.MaxValue.ToString("#")
这将导致:

340282300000000000000000000000000000000

以下是一些附加格式:

大约为340000

如果使用Dan的代码,您将得到以下结果:

340282300000000000000000000000000000000
这被称为(指数记数法),与科学记数法一起使用

从:

因为像10^7这样的超级脚本索引不能总是 字母E或E通常被用来表示 乘以10的幂(写为“x10^b”) 然后是指数的值

因此,
3.40282347E+38
等于
3.40282347*10
38
,将被读取为“3.40282347乘以38的10次方”

就是这样


换句话说,这就是移动小数点以计算结果的小数位数。拿5个,移动2个位置,最后500个。在您的示例中,您需要将数字
3.40282347
移动小数点38次

请尝试以下代码:

float f = float.MaxValue;
Console.WriteLine("Origianl Value: " + f);
Console.WriteLine("With Zeros:" + f.ToString("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

很抱歉给我一个旧的帖子,但是谷歌把我带到这里,我没有找到一个满意的答案。我相信谷歌会引领其他人

h库包括float的最大值和c中的其他值。FLOAT \u MAX等于3402834663852885981170418348484516925440,这是FLOAT可以存储的最大值


我不是C方面的专家,但我可以想象这个值是通用的,不依赖于x32或x64操作系统。

不带指数的最大浮点数是:340282356797336616375395458142568447.9f

显示
float.MaxValue
使用
ToString
的答案不正确

这些答案的状态为浮动。最大值为:
var f1=340282300000000000000000000000000000f

这只是C在将
float.MaxValue
转换为字符串时产生的结果

但是,
float.MaxValue
System.Single
中定义为
3.40282347E+38F

因此,实际答案是:

var f2=340282347000000000000000000000f

还请注意,编译缺陷将允许将高于此值的常量值用作浮点值。但是,在遵从时,C#将把这些值转移到
float.MaxValue
。例如:

var f3 = 340282356699999999999999999999999999999f;
var f4 = 340282356760000000000000000000000000000f;
var f5 = 340282356779733661637539395458142568447.9f;
这里f5(
340282367797336616375395458142568447.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

是否要用字符串表示此内容?你说的“代表”是什么意思?没问题。如果需要逗号,请使用“\”、“\”
或“
”N”
“整数”是34028346638528859811704183484516925440。@这是我在类似问题中看到的最好答案。你能演示C++中如何做到这一点吗?(a)代码> FLTMXMAX < /COD>——不是<代码> FooLaLax Max < /COD>——实际上从系统到系统,或者编译器到编译器都有不同,虽然至少是1E+37(b),这个问题是关于C,而不是C.first,这应该是它自己的问题。第二,IEEE浮点值的最大值由国际标准定义。在32位空间内存储“范围内的所有值”是不可能的,精度损失发生在大于大约2^24的值上——分数值也会发生类似的精度损失。这也是因为可用的二进制存储空间,.NET遵循IEEE 754-1985舍入规则。2008年发布了一项新标准。无论采用哪种方式,float都可以存储大于
3402823468352885981170418348484516925440的值,并且精度会显著降低。这既不是特定于语言,也不是特定于平台/体系结构。在各种来源的常数中提供什么的选择不是由IEEE标准规定的,并且会有所不同。根据规范,您的C发行版中的FLT_MAX在技术上是不正确的,它的值太大,无法存储在32位空间中,因此必须进行四舍五入。可以存储在32位空间(无符号)中的最大正常整数是4294967295(任何大于此值的值都会导致精度损失)。我认为c#编译器允许您将其定义为常量,但编译后它会被截断为float.maxvalue。
var f3 = 340282356699999999999999999999999999999f;
var f4 = 340282356760000000000000000000000000000f;
var f5 = 340282356779733661637539395458142568447.9f;
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