在Windows区域控制面板中是一个"数字分组"设置,表示是否使用了印度编号系统,其中千位分隔符字符将小数点左边的前三位数组合在一起,此后每两位数字对比更常见的分组,其中每三位数字位于左侧十进制组合在一起。
如何在VB6中获取该设置?
或者,或者,确定何时使用印度编号系统的最佳方法是什么?
答案 0 :(得分:4)
Private Const LOCALE_SGROUPING = &H10
Private Const LOCALE_USER_DEFAULT = &H400
Private Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) as Long
Private Function Grouping() As String
Dim retVal As Long, sBuf As String
sBuf = String(255, vbNullChar)
retVal = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SGROUPING, sBuf, Len(sBuf))
Grouping = Left$(sBuf, retVal - 1)
End Function
示例:输出:3;0
代表123.456,789,3;2;0
代表12.34.56,789
答案 1 :(得分:0)
Bob77在评论中说,为什么不让FormatNumber
为你做呢?它将应用区域设置中的数字分组。喜欢这个
MsgBox(FormatNumber(123456, , , , vbUseDefault))
"航空代码" - 我自己没试过这个