單精度只保留6位有效數字。另外雙精度可以保留15位數字。這是2者最明顯的區(qū)別。

目前創(chuàng)新互聯建站已為上千家的企業(yè)提供了網站建設、域名、網站空間、綿陽服務器托管、企業(yè)網站設計、金水網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
僅僅是普通表達式的話,定義數據類型,比如從單精度改為雙精度,如果想保留小數點位數,用formatnumber來處理。如果是某個算法的精度,就要復雜一些,要定義一個誤差,在算法迭代過程中,用while語句判斷計算結果的殘差是否小于定義的誤差值,至于殘差如何計算,與你的算法有關
可以自己建立一個判斷double精度的程序,如下:
Private Function F(Dou As Double) As Integer
Dim St As String, Ddot As Integer '聲明
St = Str(Dou) '把這個double轉換成字符串
Ddot = Instr(St, ".") 'Ddot代表點(.)的位置
If Ddot = 0 Then Exit(0) '找不到點(.),精度當然是零~
Do While Right(St, 1) = 0 '若找得到點(.),先去掉double右邊多余的0
St = Left(St, Len(St - 1)) '去掉一個0
Loop
Exit(Len(St) - Ddot) '末尾沒有0的double的長度減去點(.)的位置,得到的就是點后面有幾個數字,也就是lz說的精度~
End Function
'寫完以后如果要求精度就調用這個過程就可以了。
'例如求544.42400的精度,存在a里面(a As Integer)這樣寫:
Dim a As Integer
a = F(544.42400)
用這個函數把
Math.Round 方法 (Decimal, Int32)
將小數值舍入到指定精度。
命名空間: System
程序集: mscorlib(在 mscorlib.dll 中)
語法
Visual Basic(用法)
Dim d As Decimal
Dim decimals As Integer
Dim returnValue As Decimal
returnValue = Math.Round(d, decimals)
參數
d
類型:System.Decimal
要舍入的小數。
decimals
類型:System.Int32
返回值中的小數位數(精度)。
返回值
類型:System.Decimal
精度等于 decimals,最接近 d 的數字。
Math.Round(3.4666666, 4) 結果是 3.4667.
網站欄目:vb.net計算精度,vb高精度算法
網站路徑:http://chinadenli.net/article14/dsegjge.html
成都網站建設公司_創(chuàng)新互聯,為您提供網站收錄、響應式網站、微信公眾號、企業(yè)建站、面包屑導航、做網站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯