![]() |
1
48
根据微软的说法,“浮点运算溢出或除以零永远不会引发异常,因为浮点类型基于IEEE 754,因此有表示无穷和NaN(不是数字)的规定。” 更多信息 here . |
![]() |
2
13
从数学上讲,没有区别。然而,对于计算机,只有标准 IEEE-754 floating-point specification 具有表示±的特殊值。整数只能容纳。。。整数:-) |
![]() |
3
8
这个 IEEE Standard for Floating-Point Arithmetic (IEEE 754)是应用最广泛的浮点计算标准,随后是许多硬件和软件实现,包括C#编译器。 这意味着C#中的浮点变量可以包含表示奇怪生物的位模式,例如正整数、负整数和非数字(缩写为NaN)。根据IEEE 754算法规则,这些非有限浮点值中的任何一个都可以通过某些操作生成。例如,无效的浮点运算(如将零除以零)将导致NaN。 在您的特定示例中,您可以看到C 35;(与VB不同)根据所涉及数字的数字类型,重载/运算符以表示整数或浮点除法。 在第一个示例中,编译器看到1.0,因此使用浮点除法并将结果放入浮点变量中。那个变量包含无穷大的表示。 在第二个例子中,编译器看到1,因此使用整数除法并将结果放入一个整数变量中。因为C中的整数类型使用二的补码系统来表示,并且不使用任何特殊的位模式来表示无穷大(或NaN),所以编译器会给出一个错误。 还有其他的 interesting floating-point subtleties . 值得一读 Eric Lippert's blog entry 关于这个问题。 |
![]() |
4
7
浮点除法由IEEE754控制,IEEE754指定除以零应为无穷大。整数除法没有这样的标准,所以它们只是遵循数学的标准规则。 |
![]() |
A B · C#Excel自动调整列避免长文本时出错 4 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 4 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 4 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 5 月前 |