易语言GetNumberFormatA格式化数字输出

GetNumberFormatA函数原型:

int GetNumberFormatA(
  LCID             Locale,
  DWORD            dwFlags,
  LPCSTR           lpValue,
  const NUMBERFMTA *lpFormat,
  LPSTR            lpNumberStr,
  int              cchNumber
);

int GetNumberFormat(
LCID Locale, // 语言
DWORD dwFlags, // 如果lpFormat不为NULL,则dwFlags必须为0
LPCTSTR lpValue, // 输入的数字字符串
CONST NUMBERFMT *lpFormat, // 格式信息
LPTSTR lpNumberStr, // 输出缓冲区
int cchNumber // 输出缓冲区的大小
);

易语言API

.版本 2
 
.DLL命令 取格式化数字_, 整数型, "kernel32.dll", "GetNumberFormatA"
    .参数 地方ID, 整数型, , Locale
    .参数 标志, 整数型, , dwFlags
    .参数 值, 文本型, , lpValue
    .参数 格式化结构, 数值格式化_, , lpFormat
    .参数 缓冲区文本, 文本型, , lpNumberStr
    .参数 缓冲区文本长度, 整数型, , cchNumber

struct _numberfmtA 数据类型

typedef struct _numberfmtA {
  UINT  NumDigits;
  UINT  LeadingZero;
  UINT  Grouping;
  LPSTR lpDecimalSep;
  LPSTR lpThousandSep;
  UINT  NegativeOrder;
} NUMBERFMTA, *LPNUMBERFMTA;

typedef struct _numberfmt {
UINT NumDigits; //小数位个数
UINT LeadingZero; //小数点的前面是否前置0
UINT Grouping; //整数位几个可以打包为一组
LPTSTR lpDecimalSep; //小数分隔符,一般为”.”
LPTSTR lpThousandSep; //千位分隔符,一般为”,”
UINT NegativeOrder; //是否显示负数
} NUMBERFMT, *LPNUMBERFMT;

数值格式化数据类型

.版本 2
 
.数据类型 数值格式化_, , NUMBERFMT
    .成员 小数位数, 整数型, , , NumDigits
    .成员 是否使用0, 整数型, , , LeadingZero
    .成员 组大小, 整数型, , , Grouping
    .成员 小数点符号, 文本型, , , lpDecimalSep
    .成员 组分隔符号, 文本型, , , lpThousandSep
    .成员 负数模式, 整数型, , , NegativeOrder

易语言调用

.版本 2
 
.程序集 窗口程序集_启动窗口
 
.子程序 _按钮_数值格式化_被单击
.局部变量 局部_缓区, 文本型
.局部变量 局部_数值格式化, 数值格式化_
 
局部_缓区 = 取重复文本 (255,0)
局部_数值格式化.小数位数 = 4
局部_数值格式化.组大小 = 3
局部_数值格式化.小数点符号 = “.”
局部_数值格式化.组分隔符号 = “,”
局部_数值格式化.负数模式 = 1
取格式化数字_ (0, 0,300243.23, 局部_数值格式化, 局部_缓区, 取文本长度 (局部_缓区))
编辑框_运行结果.内容 = 局部_缓区

发布日期:

所属分类: 易语言 标签: