zoukankan      html  css  js  c++  java
  • VB6.0 获取N位有效数字方法

     最近一直在维护公司的一个老程序,需要一个获取N为有效数字的方法。我感觉自己还真是没念过书,客户给我说N位有效数字时。我几次以为是N位有效小数.在GOOGLE,BAIDU都没有找到代码,只能自己写。水平有限,需要的朋友可能拿去直接用,一下代码经过测试。
    代码
    Function 获取N位有效数字(str数值 As String, int有效位数 As IntegerAs String '获取N位有效数字,小数最后一会不要是0
        Dim tempsz As Double
        
    Dim 整数位数 As Integer, 整数值 As Long, 有效数字个数 As Integer, 有效数字最后一会位置 As Integer
        
    Dim 是否增加 As Boolean
        
        tempsz 
    = Val(str数值)
        整数值 
    = Int(tempsz)
        整数位数 
    = Len(CStr(整数值))
        
        
    If tempsz = 0 Or int有效位数 <= 0 Then
            获取N位有效数字 
    = "0"
            
    Exit Function
        
    End If

        
    If 整数位数 > int有效位数 Then
            获取N位有效数字 
    = Round(tempsz / (10 ^ (整数位数 - int有效位数)), 0)
            获取N位有效数字 
    = Val(获取N位有效数字) * (10 ^ (整数位数 - int有效位数))
            获取N位有效数字 
    = CStr(Int(Val(获取N位有效数字)))
            
    Exit Function
        
    End If
        
        
    If 整数值 >= 1 Then
            获取N位有效数字 
    = CStr(Round(tempsz, int有效位数 - 整数位数))
            
    If int有效位数 <> 整数位数 Then
                获取N位有效数字 
    = Format(获取N位有效数字, "#0." & 字符串重复函数("0", int有效位数 - 整数位数))
            
    End If
            
    Exit Function
        
    Else
            lens 
    = Len(str数值)
            有效数字个数 
    = 0
            获取N位有效数字 
    = ""
            是否增加 
    = False
            
            
    For n = 1 To lens
                ws 
    = Mid(str数值, n, 1)
                
    If 有效数字个数 < int有效位数 Then
                    获取N位有效数字 
    = 获取N位有效数字 & ws
                    
    If (ws = "0" And 是否增加) Or Val(ws) > 0 Then
                        是否增加 
    = True
                        有效数字个数 
    = 有效数字个数 + 1
                        
    If 有效数字个数 = int有效位数 Then
                            有效数字最后一会位置 
    = n
                        
    End If
                    
    End If
               
                
    End If
            
    Next
            
            
    If 有效数字个数 < int有效位数 Then
                获取N位有效数字 
    = 获取N位有效数字 & 字符串重复函数("0", int有效位数 - 有效数字个数)
            
    Else
                获取N位有效数字 
    = "0" & CStr(Round(tempsz * 10 ^ (有效数字最后一会位置 - 2), 0/ (10 ^ (有效数字最后一会位置 - 2)))
            
    End If
        
        
    End If
        
        
    End Function

    Function 字符串重复函数(str字符串 As String, int重复次数 As IntegerAs String
        字符串重复函数 
    = ""
        
    For i = 1 To int重复次数
            字符串重复函数 
    = 字符串重复函数 & str字符串
        
    Next
    End Function

  • 相关阅读:
    51nod 1125 交换机器的最小代价
    货物运输 51Nod
    hihoCode 1075 : 开锁魔法III
    糖果
    区间 GCD
    poj2186--tarjan+缩点(有向图的强连通分量中点的个数)
    Hdu 4738【tanjan求无向图的桥】割边判定定理 dfn[x] < low[y]
    回文树介绍
    回文树总结
    140. 后缀数组(hash + 二分 / 后缀数组)
  • 原文地址:https://www.cnblogs.com/qzdotnet/p/1663863.html
Copyright © 2011-2022 走看看