C返回局部變量的值也沒問題啊
成都創(chuàng)新互聯(lián)主營臥龍網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,成都app開發(fā),臥龍h5微信小程序定制開發(fā)搭建,臥龍網(wǎng)站營銷推廣歡迎臥龍等地區(qū)企業(yè)咨詢
只是如果這個局部變量是指向棧上的內(nèi)存的指針,由于函數(shù)結束后活動棧被清空,會導致指針失效。
VB.NET不支持指針語法,它不可能返回指向棧上的指針,所以用不著擔心這個問題。
你的理解
第一點理解是正確的,不過和這個問題關系不大。因為引用類型本來就不是分配在棧上的,它當然就不受函數(shù)的影響。
第二點,那個只是個語法問題。VB6沒有Return語句,所以它必然有另外一種語法來表明函數(shù)的返回值。這個和函數(shù)能否返回正確的對象沒有關系,就是一種表明函數(shù)返回值的語法。
編譯器確實定義了一個和函數(shù)同名的變量,那個變量就是一個普通的局部變量,作用域就在函數(shù)的局部域里。這個變量沒什么特別的,就是編譯器會在函數(shù)結束時把這個變量的值作為函數(shù)的返回值返回而已。
1000=x2000,并不是(1000=30002000)為真
而是先判斷(1000=3000)為真也就是1,然后(12000)為真
EXCEL表格一樣的公式,但計算結果顯示會不正確可能是因為單元格式的設置不對,可以通過重新設置EXCEL表格中單元格的格式,使公式計算的結果正確。
在EXCEL中使用公式使計算結果調(diào)整正確的方法及具體操作步驟如下,以wps2019中的EXCEl表格為例做演示。
1、在電腦wps中找到需要操作的EXCEl表格,如下圖所示,進入下一步。
2、將鼠標選中錯誤結果的單元格,點擊鼠標右鍵,在彈出的設置選項對話框中選擇“設置單元格格式”選項,點擊進入下一頁面,如下圖所示。
3、然后將單元格格式選定為常規(guī),如下圖所示,進入下一步。
4、選項單元格格式后,點擊下方的“確定”選項,如下圖的所示,進入下一步。
5、這時就可以看到原先單元格中錯誤的結果已經(jīng)修改過來了,如下圖所示,完成錯誤結果的修改過程。
這應該是由浮點數(shù)的誤差所造成的,你把kk設為雙精度浮點數(shù),那么結果就是1.34
但是浮點數(shù)誤差與精度是無關的,雙精度也同樣存在,繼續(xù)測試你就會發(fā)現(xiàn)有趣的現(xiàn)象:
下面假定s為單精度浮點數(shù)變量,d為雙精度浮點數(shù)變量,則:
s = 1.345 Round(s, 2) = 1.35 (錯)
d = 1.345 Round(d, 2) = 1.34 (對)
s = 2.345 Round(s, 2) = 2.35 (錯)
d = 2.345 Round(d, 2) = 2.35 (錯)
s = 3.345 Round(s, 2) = 3.35 (錯)
d = 3.345 Round(d, 2) = 3.34 (對)
s = 4.345 Round(s, 2) = 4.34 (對)
d = 4.345 Round(d, 2) = 4.34 (對)
可以發(fā)現(xiàn)這錯誤的發(fā)生是毫無規(guī)律的,有時候真能讓人發(fā)瘋!
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),你的代碼中括號的位置錯了。
正確的應該是: Math.Sqrt((n + 1) / n - 1)
文章標題:關于vb.net公式結果不對的信息
網(wǎng)站路徑:http://muchs.cn/article36/hjohpg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設、搜索引擎優(yōu)化、小程序開發(fā)、定制開發(fā)、建站公司、自適應網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)