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

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不能直接进行运算的原因是两者之间不能进行隐式的类型转换。

(0)

相关推荐

  • asp.net 程序性能优化的七个方面 (c#(或vb.net)程序改进)

    1.使用值类型的ToString方法 在连接字符串时,经常使用"+"号直接将数字添加到字符串中.这种方法虽然简单,也可以得到正确结果,但是由于涉及到不同的数据类型,数字需要通过装箱操作转化为引用类型才可以添加到字符串中.但是装箱操作对性能影响较大,因为在进行这类处理时,将在托管堆中分配一个新的对象,原有的值复制到新创建的对象中. 使用值类型的ToString方法可以避免装箱操作,从而提高应用程序性能. int num=1; string str="go"+num.T

  • 在C#中调用VBScript、javascript等脚本的实现代码

    一.使用MSScriptControl 到微软的网站上下载Windows Script Control,它是一个ActiveX(R) 控件,所以在.NET中使用我Interop了一下.下载安装完成后,新建一个C#的Windows应用程序项目,在解决方案资源管理器中选中引用节点,右键点击选择添加引用菜单,弹出添加引用对话框,单击浏览找到安装Windows Script Control的目录,选取msscript.ocx文件确定.那么在引用节点下会增加一个MSScriptControl组件,下面是他

  • asp.net 验证码的简单制作(vb.net+C#)

    网站上验证码效果一般制作方法是: 1)使用HttpHandler(一般处理程序)绘制随机验证码的图,以及产生随机码,并输出到页面的OutputStream中. 2)页面中使用异步方式(js等)进行刷新当前页面的验证码. [示例] 1)创建一个"一般应用处理程序ashx",代码如下: [C#] 复制代码 代码如下: public class ValidationCode : IHttpHandler { //随机发生器 static Random r = new Random(Guid.

  • C#利用ScriptControl动态执行JS和VBS脚本

    ScriptControl接口 属性名称 类型 备注 AllowUI BOOL 检测是否允许运行用户的接口元素.如果为False,则诸如消息框之类的界面元素不可见. CodeObject Object 脚本暴露给宿主调用的对象.只读. Modules Modules 宿主提供给脚本的组件库模块.只读.(COM组件通常都是以对象收集的形式向用户提供可以留给用户二次开发的对象集合,每一个收集即一个Modules) Language String 设置或获取脚本引擎解释的语言,例如:VBScript.

  • 获取客户端IP地址c#/vb.net各自实现代码

    公司的域环境内,程序要求获取客户端的IP地址,分部程序码分享于此. C#: VB.NET:

  • C#实现只运行单个实例应用程序的方法(使用VB.Net的IsSingleInstance)

    从 <<Windows Forms 2.0 Programming, 2nd Edition>>   -  Single-Instance Applications 这一章中, 学到了调用 VB.Net 中的 IsSingleInstance, 为 C# WinForm 添加只运行应用程序的单个实例 ( Single Instance Application). 是个好方法! 该方法显然从易用性上便捷与 Mutex 和 Process 这两种只运行单个应用程序实例的方法. Sing

  • javascript中字符串替换函数replace()方法与c# 、vb 替换有一点不同

    1.<script language="javascript"> var str = "ajfhslajd and"; //在此我想将字母a替换成字母A alert(str.replace("a","A")); </script> 结果:是只有替换了字符串的首字符a 这不是我要的结果 看↓ 2.replace()支持正则表达式,它可以按照正则表达式的规则匹配字符或字符串,然后给予替换! <scri

  • ACCESS的参数化查询,附VBSCRIPT(ASP)和C#(ASP.NET)函数第1/2页

    最近因项目需要用ACCESS做数据库开发WEB项目 看论坛上还许多人问及ACCESS被注入的安全问题 许多人解决的方法仍然是用Replace替换特殊字符,然而这样做也并没有起到太大做用 今天我就把我用ACCESS参数化查询的一些方法和经验和大家分享 希望对大家有所启发,有写的不对的地方希望高手们多多指教 ASP.NET 用OleDbCommand的new OleDbParameter创建参数货查询 ASP用Command的CreateParameter 方法创建参数化查询 (SQL储存过程查询也

  • C#中调用VB中Inputbox类的实现方法

    C#自己没有Inputbox这个类,但是Inputbox也蛮好用的,所以有两种方法可以使用 一:间接调用vb中的Inputbox功能 1.在项目中添加对Microsoft.VisualBasic引用       2.在项目中添加命名空间Using Microsoft.VisualBasic;       3.以后就可以直接使用VB中的好多类库(爽啊--) 例如:textBox1.Text=Microsoft.VisualBasic.Interaction.InputBox("提示性文字"

  • 如何让C#、VB.NET实现复杂的二进制操作

    相应的类库可在我的资源页面中找到,关于类成员的说明可通过对象浏览器查看函数说明 复制代码 代码如下: Imports BitOperatorLibrary.ShiftOperation.CircularShiftOperationImports BitOperatorLibrary.ShiftOperation.NormalShiftOperationImports BitOperatorLibrary.bitConvert Module Module1 Sub Main()        Co

  • C#调用VB进行简繁转换的方法

    本文实例讲述了C#调用VB进行简繁转换的方法.分享给大家供大家参考.具体分析如下: 首先在C#项目中引用Microsoft.VisualBasic.dll,版本自己选择合适的 然后在项目中添加引用:using Microsoft.VisualBasic; 转换: 转为繁体: outputText=Strings.StrConv(txt待转换文本, VbStrConv.TraditionalChinese); 转为简体: outputText=Strings.StrConv(txt待转换文本, V

  • C# VB 实现10进制 16进制之间互相转换

    方法1: 复制代码 代码如下: int d=10; d.ToString("x") //或把x改为X,,,就变成了16位的字符串了. int x=Convert.ToInt32(d.ToString("x"),16);//把16进制的字符串变回10进制的. 方法2: 复制代码 代码如下: static void Main() { int i = 446; string hex = i.ToString( "X" /* or x * ); Cons

  • C#、vb.net及SQL判断指定年份是否为闰年的方法

    本文实例讲述了本文章介绍了在c#,vb.net,sql中来判断指定日期是否为闰年的方法.分享给大家供大家参考.具体实现方法如下: C#代码如下: 复制代码 代码如下: public bool IsLeapYear(int year) {         if ((year < 1) || (year > 9999))         {             throw new ArgumentOutOfRangeException("year", "年份必须是

随机推荐