我在XE6项目中工作,但这也适用于其他版本的构建器。
我正在查看功能名称,我认为这可能会产生误导。如果StrToFloat()
返回float
或者返回double
,我很好奇。我找到了一个替代方案,.ToDouble()
,但我们的代码中已经有一堆使用StrToFloat()
的引用。我想验证我是否获得了双倍提供的适当精确度。
我做了几个测试,如:
UnicodeString temp = "1234567890.12345678901234567890";
double a = StrToFloat(temp);
double b = temp.ToDouble();
这些似乎从我已经完成的测试中提供了相同的值,但我希望验证StrToFloat()
与.ToDouble()
答案 0 :(得分:0)
我找到了足够的引用来回答我自己的问题......
StrToFloat()
返回extended
,扩展名为long double
。
.ToDouble()
会返回double
。
如此简短的回答是它们不一样,并且如上所示变化。
参考文献:
StrToFloat()
:
http://docwiki.embarcadero.com/Libraries/XE6/en/System.SysUtils.StrToFloat Extended
:
http://docwiki.embarcadero.com/Libraries/XE6/en/System.Extended .ToDouble()
:
http://docwiki.embarcadero.com/Libraries/XE2/en/System.UnicodeString.ToDouble long double
比double
精度更精确。 http://en.wikipedia.org/wiki/Long_double