.FormatFloat 的用法
常用的声明:
function FormatFloat(const Format: string; Value: Extended): string; overload;
和上面一样Format参数为格式化指令字符,V alue为Extended类型为什么是这个类型,因为它是所有浮点值中表示范围最大的,如果传入该方法的参数比如Double或者其他,则可以保存不会超出范围。
关键是看Format参数的用法
0 这个指定相应的位数的指令。
比如:
FormatFloat('000.000',22.22);
输出的就是022.220
注意一点,如果整数部分的0的个数小于Value参数中整数的位数,则没有效果如:FormatFloat('0.00',22.22);
输出的是:22.22
但如果小数部分的0小于V alue中小数的倍数,则会截去相应的小数和位数如:FormatFloat('0.0',22.22);
输出的是:22.2
也可以在整数0中指定逗号,这个整数位数必须大于3个,才会有逗号出句
FormatFloat('0,000.0',2222.22);
输出是:2,222.2
如果这样
FormatFloat('000,0.0',2222.22);
它的输出还是:2,222.2
注意它的规律,#和0的用法一样,目前我还没有测出有什么不同。
FormatFloat('##.##',22.22);
输出是:22.00
E 科学表示法,看几个例子大概就明白了
FormatFloat('0.00E+00',2222.22);
输出是2.22E+03
FormatFloat('0000.00E+00',2222.22);
输出是2222.22E+00
FormatFloat('00.0E+0',2222.22);
22.2E+2
明白了吗,全靠E右边的0来支配的。
var
s: string;
begin
//FormatFloat 的参数1是String 格式指令, 参数2是实数类型Extended
s := FormatFloat('###.###',12.3456);
//返回: 12.346
s := FormatFloat('000.000',12.3456);
//返回: 012.346
s := FormatFloat('#.###',12.3);
//返回: 12.3
s := FormatFloat('0.000',12.3);
//返回: 12.300
s := FormatFloat('#,#.#',1234567);
/
/返回: 1,234,567
s := FormatFloat('0,0.0',1234567);
//返回: 1,234,567.0
s := FormatFloat('0.00E+0',1234567);
//返回: 1.23E+6
s := FormatFloat('0.00E+00',1234567);
//返回: 1.23E+06
//在科学计数法中使用# 好像不合适?
ShowMessage(s);
end;
FormatFloat的用法
声明:
function FormatFloat(const Format: string; Value: Extended): string; overload;
和上面一样Format参数为格式化指令字符,V alue为Extended类型
为什么是这个类型,因为它是所有浮点值中表示范围最大的,如果传入该方法的参数比如Double或者其他,则可以保存不会超出范围。
关键是看Format参数的用法
0 这个指定相应的位数的指令。
比如:FormatFloat('000.000',22.22);
输出的就是022.220
注意一点,如果整数部分的0的个数小于Value参数中整数的位数,则没有效果如:FormatFloat('0.00',22.22);
输出的是:22.22
但如果小数部分的0小于Value中小数的倍数,则会截去相应的小数和位数
如:FormatFloat('0.0',22.22);
输出的是:22.2
也可以在整数0中指定逗号,这个整数位数必须大于3个,才会有逗号出句
FormatFloat('0,000.0',2222.22);
输出是:2,222.2
如果这样FormatFloat('000,0.0',2222.22);
它的输出还是:2,222.2
注意它的规律
delphi app# 和0的用法一样,目前我还没有测出有什么不同。(对于整数位数位0的,#和0是不一样的,0.00才显示为0.10,#.00显示为.10)
FormatFloat('##.##',22.22);
输出是:22.00
E 科学表示法,看几个例子大概就明白了
FormatFloat('0.00E+00',2222.22);
输出是2.22E+03
FormatFloat('0000.00E+00',2222.22);
输出是2222.22E+00
FormatFloat('00.0E+0',2222.22);
22.2E+2
全靠E右边的0来支配的。
在delphi中格式化数字但在Excel中未显示出来,则在其前面加四个单引号'''',在delphi中被编译时就是一个双引号",
eclApp.worksheets[1].Cells[19*n+i,7].Value:='''' + FormatFloat('#,##0.0000',CDS_EnterMaterial.fieldbyname('UNITPRICE').AsFloat);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论