函数原型:
Extended __fastcall StrToFloatDef(const UnicodeString S, const Extended Default);
Extended __fastcall StrToFloatDef(const UnicodeString S, const Extended Default, const TFormatSettings &AFormatSettings);
头文件:
#include <System.SysUtils.hpp> (XE2 之后),#include <SysUtils.hpp> (XE 之前)
参数:
S: 为字符串,支持小数格式 L"-123.456" 和科学计数法格式 L"-1.235e02",不支持千分位分割符,不支持 NAN、+INF、-INF。
Default: 默认值,浮点数。如果转换失败,即字符串 S 不是有效的浮点数,函数返回值为这个默认值。
AFormatSettings: TFormatSettings 类型转换字符串的格式,如果没有提供这个参数,会使用全局对象 FormatSettings 作为这个格式参数。
没有 AFormatSettings 参数的函数使用了全局对象 FormatSettings,不是线程安全的;
含有 AFormatSettings 参数的函数,没有使用全局对象,是线程安全的。
返回值:
转换之后的浮点数,是 Extended 类型,即 long double 类型的,可以给 float 或 double 赋值,会降低精度。
如果转换失败,会使用参数 Default 的默认值,不会抛出异常。
例:
double v = StrToFloatDef(Edit1->Text, 0.0); |
相关链接:
• StrToFloat • FloatToStr • FloatToStrF • FormatFloat
• atof • _atold • strtod • strtof • strtold • ecvt • fcvt • gcvt
|