栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

不同值类型之间的零除行为不一致

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

不同值类型之间的零除行为不一致

简而言之:

double
类型定义了无穷大的值,而类型定义了无穷大
int
。因此,在这种
double
情况下,由于定义了计算结果,因此实际上是可以在给定类型中表示的值。在这种
int
情况下,没有无穷大值,因此没有办法返回准确的结果。因此,例外。

VB.NET所做的事情有些不同。整数除法使用

/
运算符自动产生浮点值。这是为了使开发人员可以编写表达式
1 /2
,并将其求值为
0.5
,有些人会认为这很直观。如果要查看与C#一致的行为,请尝试以下操作:

Console.WriteLine(1  0)

请注意,上面使用了 整数除法 运算符(

,not 
/
)。我相信您会得到一个异常(或编译错误-不确定哪个)。

同样,请尝试以下操作:

Dim x As Object = 1 / 0Console.WriteLine(x.GetType())

上面的代码将输出

System.Double

至于不精确点,这是另一种看待它的方法。并不是说

double
类型没有正好为零的值(而是)。相反,该
double
类型并不意味着首先提供
数学上精确的结果 。(可以准确地表示某些值,是的。但是 计算 不能保证准确性。)毕竟,没有定义 数学 表达式的值
1 /0
(我最后检查过)。但是
1 / x
随着x接近零,接近无穷大。因此,从这个角度来看,如果我们仍然无法
n / m
精确地 表示大部分分数,则将
x/ 0
案例视为近似值并给出其 接近 的值 __-再次,至少定义了无限。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/432935.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号