netmjwork 发表于 2016-7-4 11:09:54

帮忙看下这个百分比怎么处理整数百分比?

本帖最后由 netmjwork 于 2016-7-4 21:36 编辑

怎么实现如下效果:
1、“可用空间”、“总大小”:这两个选项都只取小数点后面2位数,比如:25.60 G
2、“使用率”: 只取整数百分比,比如:10%

先谢谢了!




'硬盘 使用率代码如下

Set fsoobj = CreateObject("Scripting.FileSystemObject")
DriversInfo = GetDriversInfo
DriversInfo = Replace(DriversInfo, "|", vbCrLf)
sReturn ="硬盘信息:" & vbCrLf & DriversInfo
Wscript.Echo sReturn
Function GetDriversInfo()

   GetDriversInfo = ""
   Set drvObj = fsoobj.Drives
   For Each D In drvObj
       Err.Clear
       If D.DriveLetter <> "A" Then
         If D.isReady Then
               GetDriversInfo = GetDriversInfo & "分区:" & D.DriveLetter & vbCrLf
               GetDriversInfo = GetDriversInfo & "可用空间:" & cSize(D.FreeSpace) & vbCrLf
               GetDriversInfo = GetDriversInfo & "总大小:" & cSize( D.TotalSize) & vbCrLf
               GetDriversInfo = GetDriversInfo & "使用率 :" & (100*((D.TotalSize-D.FreeSpace)/D.TotalSize)) &"%" & vbCrLf
               GetDriversInfo = GetDriversInfo & "|"
             Else
         End If
         Else
       End If
   Next
End Function

Function cSize(tSize)

   If tSize >= 1073741824 Then
         cSize = Int((tSize / 1073741824) * 1000) / 1000 & " GB"
       ElseIf tSize >= 1048576 Then
         cSize = Int((tSize / 1048576) * 1000) / 1000 & " MB"
       ElseIf tSize >= 1024 Then
         cSize = Int((tSize / 1024) * 1000) / 1000 & " KB"
       Else
         cSize = tSize & "B"
   End If

End Function

slore 发表于 2016-7-4 12:44:20

本帖最后由 slore 于 2016-7-4 12:46 编辑

1.(100*((D.TotalSize-D.FreeSpace) \ D.TotalSize))

2.   CInt( (100*((D.TotalSize-D.FreeSpace)/D.TotalSize)) )

3.Round( (100*((D.TotalSize-D.FreeSpace)/D.TotalSize)) )

4. Split( (100*(( .TotalSize-D.FreeSpace)/D.TotalSize)) , ".")(0)

netmjwork 发表于 2016-7-4 14:24:31

slore 发表于 2016-7-4 12:44
1.(100*((D.TotalSize-D.FreeSpace) \ D.TotalSize))

2.   CInt( (100*((D.TotalSize-D.FreeSpace)/D. ...

多谢指导!

“可用空间”和“总大小”怎么取小数点自定义的位数? 比如想保留小数点后1位、或2位,那怎么处理?

百分比 2、3替换正常,但1、4替换报错:
1、溢出(原始代码就是这个,我改了小数点后面很多位)
4、无效的或无资格的引用

netmjwork 发表于 2016-7-4 21:36:21

本帖最后由 netmjwork 于 2016-7-4 21:44 编辑

slore 发表于 2016-7-4 12:44
1.(100*((D.TotalSize-D.FreeSpace) \ D.TotalSize))

2.   CInt( (100*((D.TotalSize-D.FreeSpace)/D. ...

感谢 slore老师给出多种方法的指点 !

4确实是少了一个D,我也没注意到……

查询参数用法解决了~

netmjwork 发表于 2016-7-4 22:04:51

本帖最后由 netmjwork 于 2016-7-5 10:19 编辑

slore 发表于 2016-7-4 12:44
1.(100*((D.TotalSize-D.FreeSpace) \ D.TotalSize))

2.   CInt( (100*((D.TotalSize-D.FreeSpace)/D. ...

已经解决,多谢!

king468468 发表于 2016-9-3 10:36:14

学习了
页: [1]
查看完整版本: 帮忙看下这个百分比怎么处理整数百分比?