/
和有什么区别和 \
用于 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/