VB.NET中的除法运算符 与 C#中的除法运算符

VB.NET中的除法运算符有两个:/(浮点除法)、\(整数除法)

C#中的除法运算符只有一个:/(除法)

VB.NET中的除法运算符与C#中的除法运算符存在很大的差异,使用时注意区分。

关于VB.NET中的除法运算符的介绍(摘自MSDN):

/(浮点除法):将两个数相除并返回以浮点数表示的结果。

所得结果的数据类型取决于操作数的类型。 下表显示如何确定结果的数据类型。


操作数数据类型


结果数据类型

两个表达式都是整数数据类型(SByteByteShortUShortIntegerUIntegerLongULong Double
一个表达式为 Single 数据类型,而另一个表达式不为 Double
Single

一个表达式为 Decimal 数据类型,而另一个表达式不为 SingleDouble
Decimal

任一表达式为 Double 数据类型 Double

执行除法之前,任何整数数值表达式都会被扩展为 Double。 如果将结果赋给整数数据类型,Visual Basic 会尝试将结果从 Double 转换成这种类型。 如果结果不适合该类型,会引发异常。如果除数被除数计算结果等于 Nothing,则将其视为零。

\(整数除法):将两个数相除并返回以整数形式表示的结果。

下表如何确定结果的数据类型。 请注意,此表是对称的;对于给定的操作数数据类型组合,无论操作数的顺序如何,结果数据类型都是相同的。

  Boolean SByte Byte Short UShort Integer UInteger Long ULong
Boolean Boolean SByte Short Short Integer Integer Long Long Long
SByte SByte SByte Short Short Integer Integer Long Long Long
Byte Short Short Byte Short UShort Integer UInteger Long ULong
Short Short Short Short Short Integer Integer Long Long Long
UShort Integer Integer UShort Integer UShort Integer UInteger Long ULong
Integer Integer Integer Integer Integer Integer Integer Long Long Long
UInteger Long Long UInteger Long UInteger Long UInteger Long ULong
Long Long Long Long Long Long Long Long Long Long
ULong Long Long ULong Long ULong Long ULong Long ULong

如果 \ 运算符两个操作数中的任何一个为 DecimalSingleDouble,则 Visual Basic 在运算前会尝试将其转换为 Long,并且运算的结果数据类型为 Long。如果 Option Strict 为 On,将产生编译器错误。 如果 Option Strict 为 Off,若值超出 Long 数据类型 (Visual Basic) 的范围,则可能会产生 OverflowException。 转换为 Long 也服从“四舍六入五成双”。如果除数被除数计算结果等于 Nothing,则将其视为零。

关于C#中的除法运算符的介绍(摘自MSDN):

/(除法): 将两个数相除并返回除数和被除数的数据类型中精度高的数据类型。

执行除法前,编译器会将除数和被除数的数据类型统一成两者类型中精度高的数据类型。返回的运算结果的类型也是两者类型中精度高的数据类型。例如:两个整数相除的结果始终为一个整数。 一个整数和一个Double型相除,返回结果为Double型。但是需要注意一点,Double和Decimal不能直接进行算术运算,必须先显式的将两者类型进行统一,之后才能进行运算,Double和Decimal不能直接进行运算的原因是两者之间不能进行隐式的类型转换。

时间: 2024-10-06 03:45:45

VB.NET中的除法运算符 与 C#中的除法运算符的相关文章

JS中的运算符和JS中的分支结构

JS中的运算符 1.算术运算(单目运算符) + .-.*. /. %取余.++自增 .--自减 +:两种作用,链接字符串/加法运算.当+两边全为数字时,进行加法运算:当+两边有任意一边为字符串时,起链接字符串作用, 链接之后的结果为字符串. 除+外,其余符号运算时,会先尝试将左右变量用Number函数转为数字: /:结果会保留小数点. ++:自增运算符,将变量在原有基础上+1: --:自增运算符,将变量在原有基础上-1: [a++和++a的异同] ①相同点:无论a++还是++a,运算完以后,a的

django中数据查找条件是表中的外键对应表的列该如何查找?

1 平常查找表中数据的条件是python中已有的数据类型,通过点运算符可以直接查找.如果条件是表中外键列所对应表的某一列,该如何查询数据?比如 class News(models.Model): title = models.CharField(max_length=50); summary = models.TextField(); url = models.CharField(max_length=150); favorCount = models.IntegerField(default=

在oracle中where 子句和having子句中的区别

在oracle中where 子句和having子句中的区别 1.where 不能放在GROUP BY 后面 2.HAVING 是跟GROUP BY 连在一起用的,放在GROUP BY 后面,此时的作用相当于WHERE 3.WHERE 后面的条件中不能有聚集函数,比如SUM(),AVG()等,而HAVING 可以 Where和Having都是对查询结果的一种筛选,说的书面点就是设定条件的语句.下面分别说明其用法和异同点.注:本文使用字段为oracle数据库中默认用户scott下面的emp表,sal

nodejs(第三篇):nodejs中的文件模块、nodejs中的require与exports、http模块补充、JavaScript Standard Style

一.nodejs中的文件模块 在nodejs中,用户自己编写的模块,称为文件模块. 文件模块,则是指js文件.json文件或者是.node文件.在引用文件模块的时候后要加上文件的路径:/.../.../xxx.js表示绝对路径../xxx.js表示相对路径(同一文件夹下的xxx.js),../表示上一级目录.如果既不加/.../.../又不加./的话,则该模块要么是核心模块,要么是从一个node_modules文件夹加载. (1)在Node.js中,require是一个方法,只有通过requir

JQ中的clone()方法与DOM中的cloneNode()方法

JQ中的clone()方法与DOM中的cloneNode()方法 cloneNode()定义和用法 cloneNode()方法创建节点的拷贝,并返回该副本. 语法: node.cloneNode(deep);  其接收一个可选参数"deep",为布尔类型,默认是false. 当设置为true,克隆当前节点,属性及当前节点的后代.若设置为false,仅仅克隆当前元素节点本身. 扩展:  使用cloneNode()方法,当被克隆的节点绑定了事件处理程序,事件处理程序是否会被一同克隆,这个我

使用Eclipse在Excel中找出两张表中相同证件号而姓名或工号却出现不同的的项

1:首先把Excel中的文本复制到txt中,复制如下: A表: 证件号                           工号  姓名 310110xxxx220130004 101 傅家宜310110xxxx220130005 102 顾音琪310110xxxx220130006 103 郭加峤310110xxxx220130007 104 胡奕蕾310110xxxx220130010 105 凌家蔚310110xxxx220130011 106 卢彦菁 B表: 证件号          

查询score中选学多门课程的同学中分数为非最高分成绩的记录。

20.查询score中选学多门课程的同学中分数为非最高分成绩的记录. select * from score a where sno in ( select sno from score group by sno having count(1)>1) and a.degree<(select max(degree) from score b where a.cno=b.cno  )

内存数据库中列转行的应用,h2中列转行,hsqldb中列转行

其实列转行是比较简单的用sum和decode函数就可以了,但是我遇到的项目,不知道数据谁设计的居然字段里面还设计成long类型,此long类型与java中的不同,oracle中的long是指可变长二进制数据,最长2G,哎没办法只好转换了. 以下是hsqldb的转换,用到了转换函数convert,可以将long类型的转换为double类型,其中d.value是long类型,status是int类型,所以value需要转换 SELECT P.NAME,P.ID, SUM(DECODE(D.K_NAM

如何取消xendesktop7.x中发布出来的windows 7中的文件复选框

最近很多用户反映通过Citrix XenDekstop7.x的版本发布出来的windows7会默认开启文件复选框,如下图: 很多用户会感觉不习惯,当然关闭起来也很简单,打开Windows Exploer->工具->文件夹选项->取消勾选"使用复选框以选择项"即可! 很多用户又有了疑问:为何我的模板里没有勾选此项但是发布出来的VM默认勾选此项呢? 其实很简单这个主要是针对触屏设备访问而开启的,在安装VDA7.x后会默认改为Tablet PC模式 http://windo