无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 3959|回复: 8
打印 上一主题 下一主题

[已解决] 帮忙看下这个百分比怎么处理整数百分比?

[复制链接]
跳转到指定楼层
1#
发表于 2016-7-4 11:09:54 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 netmjwork 于 2016-7-4 21:36 编辑

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

先谢谢了!




  1. '硬盘 使用率代码如下

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

  8.    GetDriversInfo = ""
  9.    Set drvObj = fsoobj.Drives
  10.    For Each D In drvObj
  11.        Err.Clear
  12.        If D.DriveLetter <> "A" Then
  13.            If D.isReady Then
  14.                GetDriversInfo = GetDriversInfo & "分区:" & D.DriveLetter & vbCrLf
  15.                GetDriversInfo = GetDriversInfo & "可用空间:" & cSize(D.FreeSpace) & vbCrLf
  16.                GetDriversInfo = GetDriversInfo & "总大小:" & cSize( D.TotalSize) & vbCrLf
  17.                GetDriversInfo = GetDriversInfo & "使用率 :" & (100*((D.TotalSize-D.FreeSpace)/D.TotalSize)) &"%" & vbCrLf
  18.                GetDriversInfo = GetDriversInfo & "|"
  19.              Else
  20.            End If
  21.          Else
  22.        End If
  23.    Next
  24. End Function

  25. Function cSize(tSize)

  26.      If tSize >= 1073741824 Then
  27.          cSize = Int((tSize / 1073741824) * 1000) / 1000 & " GB"
  28.        ElseIf tSize >= 1048576 Then
  29.          cSize = Int((tSize / 1048576) * 1000) / 1000 & " MB"
  30.        ElseIf tSize >= 1024 Then
  31.          cSize = Int((tSize / 1024) * 1000) / 1000 & " KB"
  32.        Else
  33.          cSize = tSize & "B"
  34.      End If

  35. End Function
复制代码
2#
发表于 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)

点评

还是有些问题,单独使用 round(key,1) 有效,但是在上面的代码里没法套用,我不知道在上面代码那个位置怎么来使用? 比如: GetDriversInfo = GetDriversInfo & "可用空间:" & cSize(D.FreeSpac  详情 回复 发表于 2016-7-4 22:04
感谢 slore老师 ! 4确实是少了一个D,我也没注意到…… 查询参数用法解决了~  详情 回复 发表于 2016-7-4 21:36
多谢指导! “可用空间”和“总大小”怎么取小数点自定义的位数? 比如想保留小数点后1位、或2位,那怎么处理? 百分比 2、3替换正常,但1、4替换报错: 1、溢出(原始代码就是这个,我改了小数点后面很多位  详情 回复 发表于 2016-7-4 14:24
回复

使用道具 举报

3#
 楼主| 发表于 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、无效的或无资格的引用

点评

4应该是.TotalSize前面少写了个D  发表于 2016-7-4 19:05
round(34.2445, 2) => 34.24  发表于 2016-7-4 18:40
回复

使用道具 举报

4#
 楼主| 发表于 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,我也没注意到……

查询参数用法解决了~
回复

使用道具 举报

5#
 楼主| 发表于 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. ...


已经解决,多谢!
回复

使用道具 举报

6#
发表于 2016-9-3 10:36:14 | 只看该作者
学习了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-27 14:13

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表