Moh*_*ari 8 c# floating-point types
long b = 99;
float c = 99.0F;
//b = c; //Error : Cannot implicitly convert type 'float' to 'long'.
c = b; // Running Successfully. Why?
Run Code Online (Sandbox Code Playgroud)
为什么数据类型的大小和隐式转换没有问题?我们知道
的大小float和long不同之处在下面给出...
Console.WriteLine("Long : " + sizeof(long)); // Output --> Long : 8
Console.WriteLine("Float : " + sizeof(float));// Output --> Float: 4
Run Code Online (Sandbox Code Playgroud)
有两个原因
1.值的范围(即最大值).
+--------------+-----------------------------+
| data type | Maximum Value |
+--------------+-----------------------------+
| | |
| long | 9223372036854775807 |
| | |
| float | 3.402823E+38 |
| | |
+--------------+-----------------------------+
Run Code Online (Sandbox Code Playgroud)
因为,float的最大值大于long,即long包含在float中.
So, float= long is possible
but, long = float is not possible
Run Code Online (Sandbox Code Playgroud)
2.优势
您无法在没有显式转换的情况下将浮点值直接分配给整数(非浮动)值.
float a=90 //correct
float b=90.0f; //correct
Run Code Online (Sandbox Code Playgroud)
但
long a=90 //correct
long b=90.0f; //wrong
Run Code Online (Sandbox Code Playgroud)
在这里,同样从上面的例子看,浮点数似乎可以包含长数据,但反之亦然.
编辑: 关于数据类型的大小,请参阅我的问题.值的范围取决于数据类型的大小?
| 归档时间: |
|
| 查看次数: |
7567 次 |
| 最近记录: |