十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
問題不是很簡單嗎?
創(chuàng)新互聯(lián)建站專注于金沙企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站開發(fā),成都商城網(wǎng)站開發(fā)。金沙網(wǎng)站建設(shè)公司,為金沙等地區(qū)提供建站服務(wù)。全流程按需制作網(wǎng)站,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)
判斷輸入的數(shù),大于等于零,則直接開方;小于零則取絕對值開方再加上字符"i",代碼我就不寫了.
VB的運算順序是:先乘除、后加減,有括號的先算括號內(nèi),有負號的先算負號。
請你比較一下這個運算中x和y的值:
Dim n As Single = 4
Dim x As Single
Dim y As Single
x = n + 1
x = x / n
x = x - 1
x = Math.Sqrt(x)
y = Math.Sqrt((n + 1) / n - 1)
這樣就會發(fā)現(xiàn),你的代碼中括號的位置錯了。
正確的應(yīng)該是: Math.Sqrt((n + 1) / n - 1)
Dim s1!, s2!, a$ '為小數(shù)點的疊加,s1,s2必須定義為單精度型
Dim flag As Boolean 'flag它是過程及的變量,在通用里必須聲明
'在數(shù)字按鈕控件單擊數(shù)組單擊事件中獲取操作數(shù)(沒有區(qū)分是哪一個操作數(shù))
Private Sub Command1_Click(Index As Integer)
x = Text1.Text
If flag = True Or x = "0" Then '查看數(shù)字是否輸入完畢或者是否清零了
Text1.Text = CStr(Index) 'CStr將數(shù)值轉(zhuǎn)換字符
Else
Text1.Text = Text1.Text + CStr(Index) '"+"在這里這個是對字符串的操作的疊加,CStr(Index)是接的數(shù)據(jù)
End If
flag = False '時刻準備數(shù)字的輸入
End Sub
'2.單擊運算符,確定s1,并且要選定運算
Private Sub Command2_Click(Index As Integer)
flag = True
s1 = Val(Text1.Text)
Select Case Index
Case 0
a = "+"
Case 1
a = "-"
Case 2
a = "*"
Case 3
a = "/"
End Select
End Sub
'3."="的單擊事件
Private Sub Command3_Click()
flag = True
s2 = Val(Text1.Text)
Select Case a
Case "+"
Text1.Text = s1 + s2
Case "-"
Text1.Text = s1 - s2
Case "*"
Text1.Text = s1 * s2
Case "/"
Text1.Text = s1 / s2 '分母不能為0
End Select
s1 = 0: s2 = 0: a = ""
End Sub
'4.清屏
Private Sub Command4_Click()
Text1.Text = "0"
s1 = 0
s2 = 0
a = ""
flag = False
End Sub
'5.刪除最后輸入的一個字符,換句話說,將本文框中的字符串取字符(從左往右取left(string,length)),將最后一個字符不取就先行
Private Sub Command5_Click()
If Text1.Text = "" Then
Else
Command5.Enabled = True
Text1.Text = Left(Text1.Text, Len(Text1.Text) - 1)
'len求字符串的長度,left(text1.len(text1)-1減1是取字符串從左往右減去一個字符串
End If
End Sub
'小數(shù)點 1)顯示出"."(注意前面輸入過的整數(shù)必須顯示) 2)小數(shù)后能繼續(xù)接受數(shù)字的輸入
Private Sub Command6_Click()
Text1 = Text1 "."
End Sub
'7加入正負號--單擊“+、-”,產(chǎn)生一個"-",而且處于一種等待數(shù)字輸入的一種狀態(tài)
Private Sub Command7_Click()
Dim temp As Double
temp = -Val(Text1.Text)
Text1.Text = temp
If d = " " Then s1 = temp Else s2 = temp
End Sub
Private Sub Command8_Click() '退出
End
End Sub
Private Sub Form_Load() '窗體初始化
Text1.Text = 0
Text1.Locked = True
End Sub
先乘除后加減,從右到左運算。
VB中運算符的計算優(yōu)先級順序如下:算術(shù)運算符和串聯(lián)運算符求冪(^)一元標識和非(+、–)乘法和浮點除法(*、/)整數(shù)除法(\)取模(Mod)加法和減法(+、–),字符串連接(+)字符串連接()算術(shù)移位()比較運算符。
擴展資料
vb.net?特性:
1、vb.net 完全集成到 Visual Studio 集成開發(fā)環(huán)境中,在這種集成開發(fā)環(huán)境與 VB 在若干方面有差異。主要體現(xiàn)在窗體的布局以及菜單等方面都有所不同。
2、vb.net 項目與 VB 不同。它使用基于文件夾的模型,所有項目均放置在項目文件夾層次結(jié)構(gòu)中。
3、vb.net 中使用ado.net來訪問數(shù)據(jù)庫,ado.net是.netFramework的一部分。在 vb.net 中實現(xiàn)數(shù)據(jù)訪問的方法主要有兩種。
其一是在程序設(shè)計階段,通過創(chuàng)建、配置數(shù)據(jù)適配器 DataAdapter 和生成數(shù)據(jù)集 DataSet;其二是在運行中,通過編程方式動態(tài)創(chuàng)建配置數(shù)據(jù)適配器和創(chuàng)建、生成數(shù)據(jù)集。
4、在 vb.net 中是使用asp.net技術(shù)來編寫 Web 頁面的。在asp.net中使用的也不是腳本語言,而是真正意義的編程語言。
憑借asp.net的 Web 應(yīng)用程序、XML Web Services 等基于 Web 的功能,使得 vb.net 開發(fā) Web 頁面與開發(fā) Windows 應(yīng)用程序很相似,Web 頁面代碼也顯得有條有理了。
5、vb.net 已經(jīng)成為完全的面向?qū)ο蟮木幊陶Z言,并且新增更多語言特性。
注意只能對整型執(zhí)行按位運算。浮點值必須轉(zhuǎn)換為整型后,才能執(zhí)行按位運算。按位運算采用二進制(以 2 為基)形式計算兩個整數(shù)值。它們比較對應(yīng)位置上的位,然后基于比較的結(jié)果賦值。下面的示例演示了 And 運算符。復(fù)制Dim x As Integerx = 3 And 5 前面的示例將 x 的值設(shè)置為 1。發(fā)生這種情況的原因如下:這些值以二進制形式處理:二進制格式的 3 為 011二進制格式的 5 為 101And 運算符比較這些二進制表示方式,一次比較一個二進制位置(位)。如果給定位置的兩個位都為 1,則將 1 放在結(jié)果中的該位置。如果任何一個位是 0,則將 0 放在結(jié)果中的該位置。在前面的示例中,按如下所示計算結(jié)果:011(二進制格式的 3)101(二進制格式的 5)001(二進制格式的計算結(jié)果)計算結(jié)果以十進制形式處理。值 001 是 1 的二進制表示形式,因此 x = 1。除了在任何一個比較位是 1 或兩個比較位都是 1 的情況下將 1 賦予結(jié)果位以外,按位 Or 運算與此類似。Xor 在比較的位正好只有一個是 1(而不是兩者都是 1)時將 1 賦給結(jié)果位。Not 采用單個操作數(shù)并反轉(zhuǎn)所有位(包括符號位),然后將該值賦予結(jié)果。這意味著,對于有符號正數(shù),Not 始終返回負值,而對于負數(shù),Not 始終返回正值或零。AndAlso 和OrElse 運算符不支持按位運算。 追問: 好復(fù)雜啊...還是不會,還有整數(shù)怎么轉(zhuǎn)換為二進制數(shù)? 回答: 為什么一定要用位運算呢,你那個乘法只能通過左移操作符“ ”來進行,而左移一次代表乘以2,要是乘以一個小數(shù),就必須先化成2的n次方,不夠再用加減法調(diào)整,很麻煩啊,沒必要用位運算啊。。。 追問: 因為我要進行大量的運算,但速度要快,所有用位運算...我也不想啊.. 回答: 那就不該用VB 啊,c/c++在執(zhí)行效率上是沒話說的。 追問: 問題就是不會嘛... 回答: 那你上csdn上發(fā)帖效果應(yīng)該不錯 追問: CSDN發(fā)了,我發(fā)在高性能運算,沒人... 回答: 耐心一些,或者你應(yīng)該發(fā)到VB.NET論壇那里。。。