Wednesday, May 16, 2012

Format Numbers in AutoHotkey with Commas

Just a quick note as I use this function in various scripts. This adds the 1000th separator comma:

    	FormatAddCommas(val) {
    		Result:=val
    		StringLen, OutputVar, Result
    		NumLoop := (OutputVar // 3)
    		DNum = 3
    		Loop, % (NumLoop+1)
    		{
    		   StringRight,Digit,Result,%DNum%
    		   StringReplace, Result, Result, %Digit%,`,%Digit%
    		   DNum += 4
    		}
    		StringLen, OutputVar, Result
    		Loop, %OutputVar%
    		{
    			FirstChar:=Substr(Result, 1, 1)
    			IfEqual, FirstChar, `,
    			{
    				Result:=Substr(Result, 2)
    			} else {
    				break
    			}
    		}
    		Return Result
    	}
Use as per usual:
      ValueWithCommas:=FormatAddCommas(NumberWithoutCommas)


One taken from the AutoHotkey forums:
	AddCommas(val)
	{
	  val:= RegExReplace(val, "(\d)(?=(?:\d{3})+(?:\.|$))", "$1,")
	  Return val
 	}

Another not tested:
	AddCommas(val)
	{
	  val:= RegExReplace(val, "(?(?<=\.)(*COMMIT)(*FAIL))\d(?=(\d{3})+(\D|$))", "$0,")
	  Return val
 	}
 

And finally PhiLho's:
CommaAdd(num) {

  VarSetCapacity(fNum,32)
  DllCall("GetNumberFormat",UInt,0x0409,UInt,0,Str,Num,UInt,0,Str,fNum,Int,32)
  return SubStr(fNum,1,StrLen(fNum) - 3)

}

Add comment

Please note: all comments are reviewed before being published.


Security code
Refresh

Member Login

Joes Latest Members

A huge WELCOME goes to today's newest members:

  • infonat
Member Signups (Activated)
BeforeCurrentTrend
Day21=
Week105ê
Month11224ê
Year2,265612ê

Member Stats
79 guests are currently online.
1,178 members are still deciding.
There are 5,935 members in total.

Latest Comments

Paypal Donations

Want to support my work? Any donation is a blessing :c)