VB.Net常用数学函数整理

System.Math 类中定义了用于数学计算的函数。Math 类包括三角函数、对数函数和其他常用数学函数。下列函数是在 System 名称空间的 Math 类中定义的函数。

 

注意:要使用这些函数,请通过在源代码顶部添加以下代码将 System.Math 名称空间导入到项目中:
Imports System.Math
Abs

Abs 函数返回指定数值的绝对值。

Abs 示例:

本示例使用 Math 类的 Abs 方法来计算一个数值的绝对值。
' Code will not compile unless it is put in a Sub or in a Function.
Dim MyNumber As Double
MyNumber = Abs(50.3) ' Returns 50.3.
MyNumber = Abs(-50.3) ' Returns 50.3.
Atan

Atan 函数返回包含角度的 Double 值。该角度的正切值是指定的数值。返回值为正表示角度在 X 轴的逆时针方向上。返回值为负表示顺时针角度。将该返回值乘以 180 再除以 pi (p) 就可以从弧度转换为度。

Atan 示例:

本示例使用 Math 类的 Atan 方法来计算 Pi 值。
' Code is not compiled unless it is put in a Sub or in a Function.
Dim pi As Double
pi = 4 * Atan(1) ' Calculate the value of pi.
Cos

Cos 函数以弧度表示的角度作为参数,然后返回一个 Double 值,表示指定角度的余弦值。

Cos 示例:

本示例使用 Math 类的 Cos 方法返回角度的余弦值。
' Code is not compiled unless it is put in a Sub or in a Function.
Dim MyAngle, MySecant As Double
MyAngle = 1.3 ' Define angle in radians.
MySecant = 1 / Cos(MyAngle) ' Calculate secant.
Exp

Exp 函数返回一个 Double 值,包含 e(自然对数的底)的指定乘幂。使用 Pow 方法可计算其他底的乘幂。Exp 是 Log 的逆运算。

Exp 示例:

本示例使用 Math 类的 Exp 方法返回 e 的乘幂。
' Code is not compiled unless it is put in a Sub or in a Function.
Dim MyAngle, MyHSin As Double
' Define angle in radians.
MyAngle = 1.3
' Calculate hyperbolic sine.
MyHSin = (Exp(MyAngle) - Exp(-1 * MyAngle)) / 2
Log

Log 函数返回一个 Double 值,包含一个指定数值的对数。该方法已重载,可以返回指定数值的自然(底数 e)对数或指定数值的指定底对数。

Log 示例:

本示例使用 Math 类的 Log 方法返回一个数值的自然对数。
' Code is not compiled unless it is put in a Sub or in a Function.
Dim MyAngle, MyLog As Double
' Define angle in radians.
MyAngle = 1.3
' Calculate inverse hyperbolic sine.
MyLog = Log(MyAngle + Sqrt(MyAngle * MyAngle + 1))
Round

Round 函数返回一个 Double 值,包含与指定值最接近的数值。其他 Round 函数可用作内部类型的方法,如 Decimal.Round 方法。

Round 示例:

本示例使用 Math 类的 Round 方法将一个数值四舍五入为最接近的整数。
' Code is not compiled unless it is put in a Sub or in a Function.
Dim MyVar1 As Double = 2.8
Dim MyVar2 As Double
MyVar2 =Round(MyVar1) ' Returns 3.
Sign

Sign 函数返回一个指示某个数值的正负号的整数值。下面的表格显示了函数及其返回值的输入参数:指定数返回值
正数1
负数-1
零0


Sign 示例:

本示例使用 Math 类的 Sign 方法确定一个数值的正负号。
' Code is not compiled unless it is put in a Sub or in a Function.
Dim MyVar1, MyVar2, MyVar3 As Double
Dim MySign As Integer
MyVar1 = 12
MyVar2 = -2.4
MyVar3 = 0
MySign = Sign(MyVar1) ' Returns 1.
MySign = Sign(MyVar2) ' Returns -1.
MySign = Sign(MyVar3) ' Returns 0.
Sin

Sin 函数以弧度表示的角度作为参数,然后返回一个 Double 值,指定该角度的正弦值。

Sin 示例:

本示例使用 Math 类的 Sin 方法返回一个角度的正弦值。
' Code is not compiled unless it is put in a Sub or in a Function.
Dim MyAngle, MyCosecant As Double
MyAngle = 1.3 ' Define angle in radians.
MyCosecant = 1 / Sin(MyAngle) ' Calculate cosecant.
Sqrt

Sqrt 函数返回一个 Double 值,指定一个指定数值的平方根。

Sqrt 示例:

本示例使用 Math 类的 Sqrt 方法计算一个数值的平方根。
' Code is not compiled unless it is put in a Sub or in a Function.
Dim MySqr As Double
MySqr = Sqrt(4) ' Returns 2.
MySqr = Sqrt(23) ' Returns 4.79583152331272.
MySqr = Sqrt(0) ' Returns 0.
MySqr = Sqrt(-4) ' Returns NaN (not a number).
Tan

Tan 函数返回一个 Double 值,包含指定角度的正切值。Tan 函数以弧度表示的角度作为参数。当指定的角度是 NaN、NegativeInfinity 或 PositiveInfinity 时,该方法将返回 NaN。

注意:乘以 p/180 可将度数转换为弧度数。

Tan 示例:

本示例使用 Math 类的 Tan 方法返回一个角度的正切值。
' Code is not compiled unless it is put in a Sub or in a Function.
Dim MyAngle, MyCotangent As Double
MyAngle = 1.3 ' Define angle in radians.
MyCotangent = 1 / Tan(MyAngle) ' Calculate cotangent.
使用类型转换函数
将一个值从一种数据类型更改为另一种数据类型的过程称为转换。转换或者是扩大或者是收缩,这取决于所涉及的类型的数据容量。公共语言运行库支持扩大转换和收缩转换两种。例如,以 32 位有符号整数形式表示的值可以转换为 64 位有符号整数。这是一个扩大转换的示例。相反的转换(从 64 位到 32 位)是一个收缩转换的示例。使用扩大转换信息永远不会丢失。但是,使用收缩转换信息可能会丢失。

以下是 Visual Basic .NET 中定义的类型转换函数:

CBool

CBool 函数用于将字符串表达式或数值表达式转换为 Boolean 值。当表达式计算为一个非零值时,CBool 函数将返回 True。否则,该函数返回 False。

CBool 示例:
Dim A, B, C As Integer
Dim Check As Boolean
A = 5
B = 5
Check = CBool(A = B) ' Check is set to True.
C = 0
Check = CBool(C) ' Check is set to False.
CByte

CByte 函数将指定数值转换为字节。输入参数必须是 0 到 255 之间的一个数值。否则,将出现 System.OverflowException。

CByte 示例:
Dim MyDouble As Double
Dim MyByte As Byte
MyDouble = 125.5678
MyByte = CByte(MyDouble) ' MyByte is set to 126.
CChar

CChar 函数仅转换指定字符串的第一个字符。CChar 的输入参数必须是数据类型的字符串。无法使用 CChar 将数值转换为字符,因为 CChar 无法接受 Numeric 数据类型。

CChar 示例:

本示例使用 CChar 函数将字符串表达式的第一个字符转换为 Char 类型。
Dim MyString As String
Dim MyChar As Char
MyString = "BCD" ' CChar converts only the first character of the string.
MyChar = CChar(MyString) ' MyChar is set to "B".
CDate

CDate 接受日期和时间的任何有效表示方式,然后将其转换为 Date 值。

CDate 示例:

本示例使用 CDate 函数将字符串转换为 Date 值。
Dim MyDateString, MyTimeString As String
Dim MyDate, MyTime As Date
MyDateString = "February 12, 1969"
MyTimeString = "4:35:47 PM"
' ...
MyDate = CDate(MyDateString) ' Convert to Date data type.
MyTime = CDate(MyTimeString) ' Convert to Date data type.
CDbl

CDbl 函数用于将数值表达式转换为 Double 值。对于负值,该函数的输入参数必须在 -4.94065645841247E-324 到 -1.79769313486231E+308 之间。对于正值,该函数的输入参数必须在 1.79769313486231E+308 到 4.94065645841247E-324 之间。

CDbl 示例:
Dim MyDec As Decimal
Dim MyDouble As Double
MyDec = 234.456784D ' Literal type character D makes MyDec a Decimal.
MyDouble = CDbl(MyDec * 8.2D * 0.01D) ' Convert result to a Double.
CDec

CDec 函数将数值转换为小数。

CDec 示例:
Dim MyDouble As Double
Dim MyDecimal As Decimal
MyDouble = 10000000.0587
MyDecimal = CDec(MyDouble) ' Convert to Decimal.
CInt

CInt 函数将数值转换为整数。

CInt 示例:
Dim MyDouble As Double
Dim MyInt As Integer
MyDouble = 2345.5678
MyInt = CInt(MyDouble) ' MyInt is set to 2346.
CLng

CLng 函数以一个数值作为参数,然后返回一个 Long 值。

CLng 示例:
Dim MyDbl1, MyDbl2 As Double
Dim MyLong1, MyLong2 As Long
MyDbl1 = 25427.45
MyDbl2 = 25427.55
MyLong1 = CLng(MyDbl1) ' MyLong1 contains 25427.
MyLong2 = CLng(MyDbl2) ' MyLong2 contains 25428.
CObj

CObj 函数将数值转换为对象。

CObj 示例:
Dim MyDouble As Double
Dim MyObject As Object
MyDouble = 2.7182818284
MyObject = CObj(MyDouble) ' Double value is pointed to by MyObject.
CShort

CShort 函数将数值转换为 Short 值。

CShort 示例:
Dim MyByte as Byte
Dim MyShort as Short
MyByte = 100
MyShort = CShort(MyByte) ' Convert to Short.
CSng

CSng 函数将数值转换为 Single 值。

CSng 示例:
Dim MyDouble1, MyDouble2 As Double
Dim MySingle1, MySingle2 As Single
MyDouble1 = 75.3421105
MyDouble2 = 75.3421567
MySingle1 = CSng(MyDouble1) ' MySingle1 is set to 75.34211.
MySingle2 = CSng(MyDouble2) ' MySingle2 is set to 75.34216.
CStr

下面的表格显示了 CStr 函数的输入参数和返回值:输入参数数据类型返回值
Boolean包含 True 或 False 的字符串
Date包含以系统的短日期格式表示的 Date 值(日期和时间)的字符串
数值表示数字的字符串


CStr 示例:

本示例使用 CStr 函数将数值转换为字符串。
Dim MyDouble As Double
Dim MyString As String
MyDouble = 437.324
MyString = CStr(MyDouble) ' MyString is set to "437.324".
使用字符串函数
不同的类中都定义有字符串函数。这些类包括 Microsoft.VisualBasic.Strings 类和 System.String 类。

使用 Microsoft.VisualBasic.Strings 类中的字符串函数
下列函数是 Microsoft.VisualBasic.Strings 类中定义的字符串函数。

注意:要使用字符串函数,请通过在源代码开始处添加以下代码将名称空间 Microsoft.VisualBasic.Strings 导入到项目中:
Imports Microsoft.VisualBasic.Strings
Asc 和 AscW

Asc 函数和 AscW 函数返回一个整数值,表示与指定的字符相对应的字符代码。这两个函数接受任何有效的字符表达式或字符串表达式作为参数。当字符串是输入参数时,则仅输入字符串的第一个字符。当字符串不包含任何字符时,将出现 ArgumentException 错误。Asc 返回输入字符的代码数据点或字符代码。对于单字节字符集 (SBCS) 值,返回值可以是 0 到 255 之间的数字。对于双字节字符集 (DBCS) 值,返回值可以是 -32768 到 32767 之间的数字。AscW 为输入字符返回 0 到 65535 之间的 Unicode 代码数据点。

例如:
Dim MyInt As Integer
MyInt = Asc("A") ' MyInt is set to 65.
MyInt = Asc("a") ' MyInt is set to 97.
MyInt = Asc("Apple") ' MyInt is set to 65.

Chr 和 ChrW

Chr 函数和 ChrW 函数返回与指定的字符代码相关联的字符。当 CharCode 超出 -32768 到 65535 的范围时,将出现 ArgumentException 错误。

例如:

本示例使用 Chr 函数返回与指定的字符代码相关联的字符。
Dim MyChar As Char
MyChar = Chr(65) ' Returns "A".
MyChar = Chr(97) ' Returns "a".
MyChar = Chr(62) ' Returns ">".
MyChar = Chr(37) ' Returns "%".
GetChar

GetChar 函数返回一个 Char 值,表示指定字符串的指定索引中的字符。当索引小于 1 或大于指定输入参数中最后一个字符的索引时,将出现 ArgumentException 错误。

例如:

本示例显示了如何使用 GetChar 函数从字符串的指定索引中返回字符。
Dim myString As String = "ABCDE"
Dim myChar As Char
myChar = GetChar(myString, 4) ' myChar = "D"
InStr

InStr 函数返回一个整数,指定一个字符串在另一个字符串中首次出现的起始位置。

例如:

以下示例使用 InStr 函数返回一个字符串在另一个字符串中首次出现的位置:
Dim SearchString, SearchChar As String
Dim MyPos As Integer
SearchString ="XXpXXpXXPXXP" ' String to search in.
SearchChar = "P" ' Search for "P".
' A textual comparison starting at position 4. Returns 6.
MyPos = InStr(4, SearchString, SearchChar, CompareMethod.Text)
Join

Join 函数返回一个字符串,该字符串是通过连接数组中包含的子字符串创建的。包含必须连接的子字符串的一维数组将作为参数传递给 Join 函数。该函数使用 Delimiter、String 作为可选参数来分隔返回的字符串中的子字符串。当省略 Delimiter 时,将使用空格(“ ”)作为子字符串之间的分隔符。当 Delimiter 是零长度字符串 ("") 时,数组中的子字符串将不使用分隔符,而是直接相连。

例如:

以下示例显示了如何使用 Join 函数:
Dim myItem(2) As String
Dim myShoppingList As String
myItem(0) = "Pickle"
myItem(1) = "Pineapple"
myItem(2) = "Papaya"
' Returns "Pickle, Pineapple, Papaya"
myShoppingList = Join(myItem, ", ")
LCase

LCase 函数返回已经转换为小写的字符串或字符。只有大写字母被转换为小写。所有小写字母和非字母字符均保持不变。

例如:

以下示例使用 LCase 函数返回字符串的小写形式:
Dim UpperCase, LowerCase As String
Uppercase = "Hello WORLD 1234" ' String to convert.
Lowercase = LCase(UpperCase) ' Returns "hello world 1234".
LTrim、RTrim 和 Trim

这些函数会返回一个包含指定字符串的副本的字符串。在使用 LTrim 时,没有起始空格。在使用 RTrim 时,没有尾随空格。在使用 Trim 时,既没有起始空格也没有尾随空格。

例如:

以下示例使用 LTrim 函数删除字符串变量中的起始空格,使用 RTrim 函数删除字符串变量中的尾随空格,以及使用 Trim 函数删除字符串变量中的起始空格和尾随空格:
Dim MyString, TrimString As String
MyString = " <-Trim-> " ' Initializes string.
TrimString = LTrim(MyString) ' TrimString = "<-Trim-> ".
TrimString = RTrim(MyString) ' TrimString = " <-Trim->".
TrimString = LTrim(RTrim(MyString)) ' TrimString = "<-Trim->".
' Using the Trim function alone achieves the same result.
TrimString = Trim(MyString) ' TrimString = "<-Trim->".
Replace

Replace 函数返回一个字符串,其中指定的子字符串按指定的次数替换为另一个子字符串。Replace 函数的返回值是一个字符串,该字符串在 Start 参数指定的位置开始,然后在指定字符串的末尾以 Find 参数和 Replace 参数中的值所指定的替换内容结束。

例如:

本示例演示了 Replace 函数:
Dim myString As String = "Shopping List"
Dim aString As String
' Returns "Shipping List".
aString = Replace(myString, "o", "i")
StrComp

StrComp 函数返回 –1、0 或 1。这将基于字符串比较的结果。字符串将从第一个字符开始按字母数字顺序排列的值进行比较。

例如:

以下示例使用 StrComp 函数返回字符串比较的结果。如果省略第三个参数,则使用选项比较语句或项目默认设置中定义的比较类型。
Dim MyStr1, MyStr2 As String
Dim MyComp As Integer
MyStr1 = "ABCD"
MyStr2 = "abcd" ' Defines variables.
' The two strings sort equally. Returns 0.
MyComp = StrComp(MyStr1, MyStr2, CompareMethod.Text)
' MyStr1 sorts after MyStr2. Returns -1.
MyComp = StrComp(MyStr1, MyStr2, CompareMethod.Binary)
' MyStr2 sorts before MyStr1. Returns 1.
MyComp = StrComp(MyStr2, MyStr1)
StrConv

StrConv 函数返回一个字符串,该字符串转换为输入参数中指定的值。StrConv 函数将转换字符串。这种转换基于 Conversion 参数中的值。Conversion 参数中的值是 VbStrConv 枚举的成员。

Conversion 参数的设置为:枚举成员说明
VbStrConv.None不执行转换
VbStrConv.LinguisticCasing- 使用语言规则而不是文件系统(默认值)来区分大小写
- 仅对大写和小写字母有效
VbStrConv.UpperCase将字符串转换为大写字符
VbStrConv.LowerCase将字符串转换为小写字符
VbStrConv.ProperCase将字符串中每个单词的第一个字母转换为大写


例如:

以下示例将文本转换为小写字母:
Dim sText, sNewText As String
sText = "Hello World"
sNewText = StrConv(sText, VbStrConv.LowerCase)
Debug.WriteLine (sNewText) ' Outputs "hello world".
StrDup

StrDup 函数返回一个由指定的字符重复指定的次数而形成的字符串或对象。StrDup 函数具有两个参数:Number 参数和 Character 参数。Number 参数指定函数必须返回的字符串的长度。StrDup 函数仅使用 Character 参数中的第一个字符。Character 参数可以是 Char 数据类型、String 数据类型或 Object 数据类型。

例如:

以下示例使用 StrDup 函数返回由重复字符组成的字符串:
Dim aString As String = "Wow! What a string!"
Dim aObject As New Object()
Dim myString As String
aObject = "This is a String that is contained in an Object"
myString = StrDup(5, "P") ' Returns "PPPPP"
myString = StrDup(10, aString) ' Returns "WWWWWWWWWW"
myString = StrDup(6, aObject) ' Returns "TTTTTT"
StrReverse

StrReverse 函数返回一个字符串,该字符串将指定字符串的字符顺序颠倒过来。

例如:
Dim myString As String = "ABCDEFG"
Dim revString As String
' Returns "GFEDCBA".
revString = StrReverse(myString)
UCase

UCase 函数返回一个字符串或字符,包含已转换为大写的指定字符串。只有小写字母被转换为大写字母。所有大写字母和非字母字符均保持不变。

例如:

以下示例使用 UCase 函数返回字符串的大写形式:
Dim LowerCase, UpperCase As String
LowerCase = "Hello World 1234" ' String to convert.
UpperCase = UCase(LowerCase) ' Returns "HELLO WORLD 1234".


使用 System.String 类中的字符串函数
以下是 System 名称空间的 String 类中的字符串函数。

注意:要使用字符串函数,请通过在源代码开始处添加以下代码将 System.String 名称空间导入到项目中:
Imports System.String
Compare

Compare 函数比较输入参数中的两个字符串。通过使用单词排序规则来执行比较。发现不相等情况或比较完两个字符串后,比较将终止。

Compare 示例:
' Code is not compiled unless it is put in a Sub or in a Function.
Dim s1, s2 As String
s1 = "testexample"
s2 = "testex"
MsgBox(Compare(s2, s1)) 'Returns -1.
MsgBox(Compare(s1, s2)) 'Returns 1.
Concat

Concat 函数将一个或多个字符串相连接,然后返回连接后的字符串。

Concat 示例:

以下示例显示了如何使用 Concat 的重载版本:
' Code is not compiled unless it is put in a Sub or in a Function.
Dim s1, s2, sa(3) As String
sa(0) = "A"
sa(1) = "B"
sa(2) = "C"
s1 = "test"
s2 = "example"
s1 = Concat(s1, s2) 'Returns testexample.
MsgBox(s1)
MsgBox(Concat(sa)) 'Returns ABC.
Copy

Copy 函数将指定字符串中的值复制到另一个字符串中。

Copy 示例:
' Code is not compiled unless it is put in a Sub or in a Function.
Dim s1, s2 As String
s1 = "Hello World"
'Copy the string s1 to s2.
s2 = Copy(s1)
MsgBox(s2) 'Displays Hello World.
Remove

Remove 函数从指定字符串的指定位置开始删除指定数目的字符。Remove 函数有两个参数。分别是 StartIndex 参数和 Count 参数。Startindex 参数指定开始删除字符的字符串位置。Count 参数指定要删除的字符数。

Remove 示例:
' Code is not compiled unless it is put in a Sub or in a Function.
Dim s1, s2 As String
s1 = "Hello World"
'Removes 3 characters starting from character e.
s2 = s1.Remove(1, 3)
MsgBox(s2) 'Displays Hello World.

Substring

Substring 函数从指定字符串的指定位置开始检索字符串。

Substring 示例:

以下示例将从指定的字符位置开始并按指定的长度来检索子字符串:
' Code is not compiled unless it is put in a Sub or in a Function.
Dim s1, s2 As String
s1 = "Hello World"
s2 = s1.Substring(6, 5) 'Returns World.
MsgBox(s2)
ToCharArray

ToCharArray 函数将字符串中的字符复制到 Unicode 字符数组中。

ToCharArray 示例:

以下示例将指定位置中的字符复制到 Character 数组中:
' Code is not compiled unless it is put in a Sub or in a Function.
Dim s1 As String
Dim ch(10) As Char
s1 = "Hello World"
'Copies the characters starting from W to d to a Character array.
ch = s1.ToCharArray(6, 5)
MsgBox(ch(3)) 'Displays l.
ToLower

ToLower 函数采用一个字符串作为参数,然后以小写形式返回该字符串的副本。

ToLower 示例:
' Code is not compiled unless it is put in a Sub or in a Function.
Dim s1, s2 As String
s1 = "Hello World"
s2 = s1.ToLower() 'Converts any uppercase characters to lowercase.
MsgBox(s2) 'Displays hello world.
ToUpper

ToUpper 函数采用一个字符串作为参数,然后以大写形式返回该字符串的副本。

ToUpper 示例:
' Code is not compiled unless it is put in a Sub or in a Function.
Dim s1, s2 As String
s1 = "Hello World"
s2 = s1.ToUpper() 'Converts any lowercase characters to uppercase.
MsgBox(s2) 'Displays HELLO WORLD.
Trim、TrimStart 和 TrimEnd

这些函数会返回一个包含指定字符串的副本的字符串。使用 Trim 函数时,既没有起始空格也没有尾随空格。使用 TrimStart 函数时,没有起始空格。使用 TrimEnd 函数时,没有尾随空格。

例如:

以下示例使用 TrimStart 函数删除字符串变量开始处的空格,使用 TrimEnd 函数删除字符串变量末尾的空格,以及使用 Trim 函数删除字符串变量中的起始空格和尾随空格:
' Code is not compiled unless it is put in a Sub or in a Function.
Dim s1, s2 As String
s1 = " Hello World "
s2 = s1.Trim() 'Returns Hello World without any white spaces.
s2 = s1.TrimStart 'Removes the spaces at the start.
s2 = s1.TrimEnd 'Removes the white spaces at the end.

posted @ 2010-12-15 09:55  meil  阅读(4892)  评论(0编辑  收藏  举报