C#中的除法运算符与VB.NET中的除法运算符
作者:mdxy-dxy 发布时间:2022-04-01 10:52:56
VB.NET中的除法运算符有两个:/(浮点除法)、\(整数除法)
C#中的除法运算符只有一个:/(除法)
VB.NET中的除法运算符与C#中的除法运算符存在很大的差异,使用时注意区分。
关于VB.NET中的除法运算符的介绍(摘自MSDN):
/(浮点除法):将两个数相除并返回以浮点数表示的结果。
所得结果的数据类型取决于操作数的类型。 下表显示如何确定结果的数据类型。
操作数数据类型 | 结果数据类型 |
两个表达式都是整数数据类型(SByte、Byte、Short、UShort、Integer、UInteger、Long、ULong) | Double |
一个表达式为 Single 数据类型,而另一个表达式不为 Double | Single |
一个表达式为 Decimal 数据类型,而另一个表达式不为 Single 或 Double | 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 |
如果 \ 运算符两个操作数中的任何一个为 Decimal、Single 或 Double,则 Visual Basic 在运算前会尝试将其转换为 Long,并且运算的结果数据类型为 Long。如果 Option Strict 为 On,将产生编译器错误。 如果 Option Strict 为 Off,若值超出 Long 数据类型 (Visual Basic) 的范围,则可能会产生 OverflowException。 转换为 Long 也服从“四舍六入五成双”。如果除数或被除数计算结果等于 Nothing,则将其视为零。
关于C#中的除法运算符的介绍(摘自MSDN):
/(除法): 将两个数相除并返回除数和被除数的数据类型中精度高的数据类型。
执行除法前,编译器会将除数和被除数的数据类型统一成两者类型中精度高的数据类型。返回的运算结果的类型也是两者类型中精度高的数据类型。例如:两个整数相除的结果始终为一个整数。 一个整数和一个Double型相除,返回结果为Double型。但是需要注意一点,Double和Decimal不能直接进行算术运算,必须先显式的将两者类型进行统一,之后才能进行运算,Double和Decimal不能直接进行运算的原因是两者之间不能进行隐式的类型转换。


猜你喜欢
- 注解实现自动装配@Autowire注解@Autowire注解,自动装配通过类型,名字如果Autowire不能唯一自动装配上属性,则需要通过@
- WPF的InkCanvas就是一个画板,可以在上面随意涂鸦,每写上一笔,InkCanvas的Strokes集合里就新增一个涂鸦对象,下面的代
- 在.net4.0以后异步操作,并行计算变得异常简单,但是由于公司项目开发基于.net3.5所以无法用到4.0的并行计算以及Task等异步编程
- 在实际开发过程中,在线程池使用过程中可能会遇到各方面的故障,如线程池阻塞,无法提交新任务等。如果你想监控某一个线程池的执行状态,线程池执行类
- 一、简介前面介绍了平时用到的大多数的多线程的例子,但在实际开发中使用的线程往往是大量的和更为复杂的,这时,每次都创建线程、启动线程。从性能上
- 一:什么是协变与逆变协变指能够使用比原始指定的派生类型的派生程度更大(更具体的)的类型,逆变指能够使用比原始指定的派生类型的派生程度更小(不
- 一、前言本文小编将基于 SpringBoot 集成 Shiro 实现动态uri权限,由前端vue在页面配置uri,Java后端动态刷新权限,
- 项目中肯定会遇到异步调用其他方法的场景,比如有个计算过程,需要计算很多个指标的值,但是每个指标计算的效率快慢不同,如果采用同步执行的方式,运
- 本文实例为大家分享了ImageView阴影和图层效果的实现代码,供大家参考,具体内容如下import android.app.Activit
- 方法一:使用AnimatedGif库Nuget安装包:Install-Package AnimatedGif -Version 1.0.5h
- 1.生成自己的注解(为了确定在哪些位置使用)/** * 关闭patch delete的model处理,否则会报错 */@Target({El
- 下面我们就字符串连接方面分析。1.String打开String的源码,如图所示会发现存储字符串的字符数值是final常量。再看String的
- 冒泡排序原理:从头(左边)开始比较每一对相邻的元素,如果第1个比第2个大,就交换它们的位置,执行完一轮后,最末尾(最右边)就是最大的元素。举
- 在java的JFrame内通过创建匿名对象的方式做登录界面package com.sxt;import java.awt.Container
- Spring Boot如何实现分布式系统中的服务发现和注册?随着互联网的快速发展,越来越多的企业开始将自己的业务迁移到分布式系统中。在这种情
- 概述本文介绍 Spring Boot 项目中整合 ElasticSearch 并实现 CRUD 操作,包括分页、滚动等功能。添加Maven依
- 在搜索引擎的开发中,我们需要对Html进行解析。本文介绍C#解析HTML的两种方法。AD: 在搜索引擎的开发中,我们需要对网页的Html内容
- 1、引言在SpringMVC的使用中,后端与前端的交互一般是使用Json格式进行数据传输,SpringMVC的@Response
- 题目:使用栈计算类似表达式:5+2*3-2 的计算结果 提示:简易计算器操作符号限于+,-,*,/的计算分析思路:1、
- 文档中可通过应用不同的字体来呈现不一样的视觉效果,通过字体来实现文档布局、排版等设计需要。应用字体时,可在创建文档时指定字体,也可以用新字体