manson 发表于 2011-8-31 11:16:26

怎样输出用逗号分隔的数字?

例如,数字为123456789,想输出为123,456,789,该怎么办?

happytc 发表于 2011-8-31 11:20:03

你在那里输出呢?

manson 发表于 2011-8-31 11:37:15

只是显示输出,例如msgbox里面。
找不到直接的方法,虽然可以编代码输出,但感觉输出带逗号的数字是一个常用的方式啊
autoit怎么会不支持呢?

happytc 发表于 2011-8-31 11:51:26

回复 3# manson


    StringFormat()

manson 发表于 2011-8-31 14:44:07

回复 4# happytc


    已经看过这个函数的帮助了,没有我想要的东西

dddr 发表于 2011-8-31 15:52:49

http://www.autoitx.com/forum.php?mod=viewthread&tid=14377

netegg 发表于 2011-8-31 16:38:16

#Include <String.au3>
_StringAddThousandsSep

manson 发表于 2011-8-31 20:18:44

谢谢楼上,这个确实可以。#include <String.au3>
$nAmount = 89996.31
$sDelimted = _StringAddThousandsSep($nAmount)    ;输出89.996.31
MsgBox(64, 'Info', $sDelimted)

$nAmt = '38849230'
$sDelim = _StringAddThousandsSep($nAmt)   ;输出38,849,230
MsgBox(64, 'Info', $sDelim)

3mile 发表于 2011-8-31 21:56:04

$number = "3456654557890.23"
MsgBox(0, 0, _Currency($number))

Func _Currency($n)
        Local $Link
        If StringInStr($n, ".") Then
                $temp = StringSplit($n, ".", 2)
                $n = $temp
                While 1
                        If Not StringRegExp($n, '(\d+)(\d{3})', 0) Then ExitLoop
                        $n = StringRegExpReplace($n, '(\d+)(\d{3})', "$1,$2")
                WEnd
                $n = $n & "." & $temp
        Else
                While 1
                        If Not StringRegExp($n, '(-?\d+)(\d{3})', 0) Then ExitLoop
                        $n = StringRegExpReplace($n, '(-?\d+)(\d{3})', "$1,$2")
                WEnd
        EndIf

        Return $n
EndFunc   ;==>_Currency

arkhe 发表于 2011-8-31 22:53:12


3mile 发表于 2011-8-31 21:56 http://www.autoitx.com/images/common/back.gif

正解啊。。。
正则表达式,要去学习下了。

suiyefeng 发表于 2011-9-1 07:41:21

标记学习一下...这功能会常用

netegg 发表于 2011-9-1 15:12:50

回复 9# 3mile
三笑想没想过小数的事情,那个函数不行,不过觉得正则应该能搞定,算是引申下这个问题吧
页: [1]
查看完整版本: 怎样输出用逗号分隔的数字?