跳转至内容

Visual Basic .NET/算术运算符

来自维基教科书,开放的书籍,开放的世界

算术运算符

[编辑 | 编辑源代码]

Visual Basic .NET 提供一组基本的运算符来计算简单的算术运算。

+   Addition
-   Subtraction
*   Multiplication
/   Division
\   Integer division
Mod Remainder Division
^   Exponentiation
&   String concatenation

7 + 2     produces 9
7 - 2     produces 5
7 * 2     produces 14
7 / 2     produces 3.5
7 \ 2     produces 3
7 Mod 2   produces 1
7 ^ 2     produces 49
"7" & "7" produces "77"

在我们深入运算符本身之前,让我们看一个算术运算的简短示例。

在这个例子中,我们也会使用一些基本的变量。 Dim 运算符创建变量。

  Dim Commission As Single
  Dim Sales As Single
  Sales = 3142.51
  Commission = 0.3 * Sales  ' Calculate 30% commission.

首先,我们将总销售额设置为 3142.51。

* 运算符计算乘法,因此最后一行等效于 。这意味着我们的第二步是将 0.3 和 Sales 相乘。Sales 是 3142.51,因此我们的结果应该是 0.3 和 3142.51 的乘积。

为什么这些奇怪的符号?

[编辑 | 编辑源代码]

除了加法和减法之外,使用的符号与现实生活中使用的符号不同。这仅仅是因为其他符号在标准键盘上不可用。

Windows 的内置计算器是 Visual Basic .NET 中运算符的一个很好的参考。如果将计算器设置为科学模式,就可以访问与 .NET 中相同的运算符。


这将两个数字加在一起,用 "+" 符号表示。如果涉及字符串,它也可能进行字符串连接。示例

  x = 7 + 2     ' Results in 9.
  x = 25 + -4   ' Results in 21.
  Dim StringA As String
  StringA = "A string" + "Another string" ' Results in "A stringAnother string"

使用奇怪的符号,在执行期间将很容易解析。大多数情况下,这就是他们使用这些符号的原因。

还有一个加法运算符 "+="。它将 += 左侧的变量递增 += 右侧指示的量。

  Dim x As Integer = 54
  x += 89       ' result is 143
  x += 7       ' result is 150

它也作为连接运算符与字符串一起使用。

  Dim x As String = "A fox"
  x += " jumped"          ' result is "A fox jumped"
  x += " over the fence"  ' result is "A fox jumped over the fence"

这将两个数字相减,用 "-" 符号表示。示例

  Dim x As Double = 12.045
Dim Y As Integer= 12
  x = x-Y     ' Results in .045.
  x = 25 - -4  ' Results in 29.
    Sub Main()
        Dim x As Double = 12.045
        Dim y As Integer = 12

        System.Console.WriteLine(x - y)
        System.Console.ReadKey()

    End Sub

当从双精度浮点数中减去整数时要小心。上面的代码在打印时,结果将是 .04499999999999999 而不是显而易见的 .045。使用双精度浮点数来存储十进制值可能非常不准确。

这将两个数字相乘,用 "*" 符号表示。示例

  Dim x As Integer
  x = 7 * 2   ' Results in 14.
  x = 25 * -4 ' Results in -100.

除法比 "/" 符号表示的除法类型更多。还有整数除法和余数除法。

除法
这是最常用的除法形式,用 "/" 运算符表示。示例
  Dim x As Single
  ' (note that we must use the Single class to have decimals)
  x = 7 / 2  ' Results in 3.5.
  x = 25 / 4 ' Results in 6.25.
整数除法
这将两个数字相除,如果商是十进制数,则给出不带余数的结果。示例
  Dim x As Integer
  x = 7 \ 2    ' Results in 3.
  x = 25 \ 4   ' Results in 6.
余数除法
这将两个数字相除,如果商是十进制数,则给出结果的余数。这用 "Mod" 运算符表示。示例
  Dim x As Integer
  x = 7 Mod 2  ' Results in 1.
  x = 25 Mod 4 ' Results in 1.

这将一个数字提升到一个幂。例如, 在 VB .Net 代码中是

  Dim x As Integer
  x = 7 ^ 2   ' Results in 49.

这将导致数字 49 被分配给变量 x。它也可以用来计算一个数字的平方根。一个数字的平方根是指这个数字被提升到 0.5 的幂。

  Dim x As Single
  x = 7 ^ 0.5 ' Results in a number around 2.645.

注意:必须确保变量被正确声明才能获得期望的结果。以下示例可以正常工作,但会产生错误的结果。这是因为 Integer 类不允许小数位(就像数学整数一样)。

  Dim x As Integer
  x = 7 ^ 0.5 ' Results in 3.

由于 x 被声明为 Integer 类型,因此平方根的值(一个实数)存储不正确。

任何数字的 n 次根都可以通过将该数字提升到 的幂来计算。

  Dim x As Single
  Dim n As Single
  n = 7
  x = 2 ^ (1 / n)

这是因为

  • Round():舍入到最接近的整数。
  • Floor():舍入到较小的整数。
  • Ceiling():舍入到较大的整数。
  • Truncate():截断小数位。
Module Module1
    Sub Main()
        Dim Number1 As Single = 1.5
        Console.WriteLine(Math.Round(Number1))  ' 2
        Console.WriteLine(Math.Floor(Number1))  ' 1
        Console.WriteLine(Math.Ceiling(Number1))  ' 2
        Console.WriteLine(Math.Truncate(Number1))  ' 1
        Console.ReadLine()
    End Sub
End Module
  • Max()
  • Min()
Module Module1
    Sub Main()
        Console.WriteLine(Math.Max(3, 4))
        Console.ReadLine()  ' 4
    End Sub
End Module
华夏公益教科书