找回密码
 加入
搜索
查看: 3695|回复: 5

[GUI管理] 結果用%表示 如何 只顯示小數點底下2位數(底下4捨5入)

  [复制链接]
发表于 2010-10-3 22:11:08 | 显示全部楼层 |阅读模式
WinKill("COM")

GUICreate("COM", 138, 100, 880, 2)
$L1 = GUICtrlCreateInput("  ", 1, 10, 50, 22, 0x008000)
GUICtrlSetBkColor(-1, 0xFFFFFF)
GUICtrlSetFont(-1, 12)
$L2 = GUICtrlCreateInput(" ", 54, 10, 40, 22, 0x008000)
GUICtrlSetBkColor(-1, 0xFFFFFF)
GUICtrlSetFont(-1, 12)
$L3 = GUICtrlCreateInput("", 72, 46, 50, 22, 0x008000)
GUICtrlSetBkColor(-1, 0xFFFFFF)
GUICtrlSetFont(-1, 12)
$1Button = GUICtrlCreateButton("命中率%", 1, 42, 70, 30)
GUISetState()

While 1
        $msg = GUIGetMsg()
        Switch $msg
                Case -3
                        Exit
                Case $1Button
                        $v1 = Number(GUICtrlRead($L1))
                        $v2 = Number(GUICtrlRead($L2))
                        GUICtrlSetData($L3, $v1 / ($v1+$v2) * 100 & ' %')
        EndSwitch
WEnd
-----------------------------------------------------------------------------------------------
edit1 / (edit1+edit2)=   %     結果用%表示
如何 只顯示小數點底下2位數(底下4捨5入)

例如:   13.335333333333333333333%
寫成13.34%
发表于 2010-10-3 22:28:29 | 显示全部楼层
GUICtrlSetData($L3, StringFormat('%.2f%%', 13.335333333333333333333));$v1 / ($v1+$v2) * 100 & ' %')
 楼主| 发表于 2010-10-3 23:30:01 | 显示全部楼层
Duvet 发表于 2010-10-3 22:28

-----------------------------------------------------
這樣不對ㄚ
怎麼 除   都是 13.34?
10 / 2  =  13.34
20/2 也是13.34
发表于 2010-10-4 03:42:33 | 显示全部楼层
回复 3# tcpuuu

Round 函数
--------------------------------------------------------------------------------
返回某数值精确到指定位的结果.
Round ( 表达式 [, 位数] )

参数
表达式 任何有效的数值表达式.  
位数 [可选参数] 指定要精确到小数点后的第几位.如果省略则对表达式取整(四舍五入,保留整数部分).  

返回值
返回精确后的数.

注意/说明
参数 位数可以是负数,这样您就可以指定数值精确到个位,十位 或 百位等.注意系统支持的是15位的有效数字,另外要注意的是此函数在完成四舍五入后不会补零(见示例).

WinKill("COM")

GUICreate("COM", 138, 100, 880, 2)
$L1 = GUICtrlCreateInput("  ", 1, 10, 50, 22, 0x008000)
GUICtrlSetBkColor(-1, 0xFFFFFF)
GUICtrlSetFont(-1, 12)
$L2 = GUICtrlCreateInput(" ", 54, 10, 40, 22, 0x008000)
GUICtrlSetBkColor(-1, 0xFFFFFF)
GUICtrlSetFont(-1, 12)
$L3 = GUICtrlCreateInput("", 72, 46, 50, 22, 0x008000)
GUICtrlSetBkColor(-1, 0xFFFFFF)
GUICtrlSetFont(-1, 12)
$1Button = GUICtrlCreateButton("命中率%", 1, 42, 70, 30)
GUISetState()

While 1
        $msg = GUIGetMsg()
        Switch $msg
                Case -3
                        Exit
                Case $1Button
                        $v1 = Number(GUICtrlRead($L1))
                        $v2 = Number(GUICtrlRead($L2))
                        GUICtrlSetData($L3, Round($v1 / ($v1+$v2) * 100 & ' %', 2))
        EndSwitch
WEnd
 楼主| 发表于 2010-10-4 05:08:43 | 显示全部楼层
GUICtrlSetData($L3,Round($v1 / ($v1+$v2) * 100 , 2 & '%'))
這一段  如何把 % 也寫進去
例如: 13.33%
发表于 2010-10-4 23:52:52 | 显示全部楼层
回复 5# tcpuuu

你要显示的数据是Round($v1 / ($v1+$v2) * 100 , 2)吧
那么因该这么写,Round($v1 / ($v1+$v2) * 100 , 2) 和 '%'

GUICtrlSetData($L3, Round($v1 / ($v1+$v2) * 100 , 2) & '%')
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-20 22:23 , Processed in 0.083448 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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