常用的声明:
function FormatFloat(const Format:
string; Value: Extended): string;
overload;
和上面一样Format参数为格式化指令字符,Value为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
注意它的规律,#和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
// 在科学计数法中使用 # 好像不合适?
在delphi中格式化数字但在Excel中未显示出来,则在其前面加四个单引号‘‘‘‘,在delphi中被编译时就是一个双引号", eclApp.worksheets[1].Cells[19*n+i,7].Value:=‘‘‘‘ + FormatFloat(‘#,##0.0000‘,CDS_EnterMaterial.fieldbyname(‘UNITPRICE‘).AsFloat);
原文:http://www.cnblogs.com/xygzs/p/3544096.html