在VB.NET中划分

时间:2010-12-03 01:09:41

标签: vb.net division

VB.NET中除/\之间有什么区别?

根据我使用的代码,我的代码给出了非常不同的答案。我以前见过这两个,但我从来不知道它们的区别。

4 个答案:

答案 0 :(得分:19)

分割数字有两种方法。快速的方式和缓慢的方式。许多编译器都试图欺骗你快速完成它。 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

左侧现在是双重的,迫使浮点除法。根据计算器显示的结果。调用FDIV的其他方法是将右侧设为浮点数,或者将其中一个操作数显式地转换为(double)。

VB.NET不起作用,/运算符总是一个浮点除法,无论类型如何。有时你真的想要整数除法。这就是\的作用。

答案 1 :(得分:10)

10 / 3 = 3.333
10 \ 3 = 3 (the remainder is ignored)

答案 2 :(得分:5)

/ Division
\ Integer Division

答案 3 :(得分:1)

10 / 3 = 3.33333333333333, assigned to integer = 3
10 \ 3 = 3, assigned to integer = 3
20 / 3 = 6.66666666666667, assigned to integer = 7
20 \ 3 = 6, assigned to integer = 6

以上代码:

Dim a, b, c, d As Integer
a = 10 / 3
b = 10 \ 3
c = 20 / 3
d = 20 \ 3

Debug.WriteLine("10 / 3 = " & 10 / 3 & ", assigned to integer = " & a)
Debug.WriteLine("10 \ 3 = " & 10 \ 3 & ", assigned to integer = " & b)
Debug.WriteLine("20 / 3 = " & 20 / 3 & ", assigned to integer = " & c)
Debug.WriteLine("20 \ 3 = " & 20 \ 3 & ", assigned to integer = " & d)