vb.net - VB.NET 中的除法

标签 vb.net division

/ 和有什么区别和 \用于 VB.NET 中的除法?

根据我使用的代码,我的代码给出了非常不同的答案。我以前都见过,但我从来不知道有什么区别。

最佳答案

有两种除数的方法。快的方式和慢的方式。许多编译器试图诱使您以快速的方式执行此操作。 C# 就是其中之一,试试这个:

using System;

class Program {
    static void Main(string[] args) {
        Console.WriteLine(1 / 2);
        Console.ReadLine();
    }
}

输出:0

你对这个结果满意吗?当表达式的左侧和右侧是整数时,它在技术上是正确的、记录在案的行为。那做了一个快速的整数除法。处理器上的 IDIV 指令,而不是(臭名昭著的)FDIV 指令。也与所有花括号语言的工作方式完全一致。但绝对是SO的“wtf发生”问题的主要来源。要获得满意的结果,您必须执行以下操作:
    Console.WriteLine(1.0 / 2);

输出:0.5

左侧现在是 double 数,强制进行浮点除法。用你的计算器显示的那种结果。调用 FDIV 的其他方法是将右侧设为浮点数或将其中一个操作数显式转换为 (double)。

VB.NET 不是这样工作的,/运算符是 总是 浮点除法,与类型无关。有时你真的想要一个整数除法。就是这样 \做。

关于vb.net - VB.NET 中的除法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4341611/

相关文章:

vb.net - 当保护 View 打开时如何使用Word对象?

vb.net - 如何捕获函数返回KeyValuePair(Of Date,Date)中的错误

c# - ConnectionString 属性尚未初始化 IIS 8.5

html - div底部的div

java - 截断除法和地板除法有什么区别?

C++。 1 除以任何数得到 0

c# - 如何在 C# 的 JsonNet 中 DeserializeObject 时设置类属性

c# - 主键应该总是从1开始吗?

java - 除法运算给出了错误的结果

c - 为什么 5.0/3 在 C 中是 1.666667?