我正在XE6项目中工作,但这也可能适用于其他版本的builder。
我正在查看一个函数名称,我认为这可能会引起误解。我很好奇StrToFloat()
返回float
还是返回double
。我找到了一个替代方案,即.ToDouble()
,但我们的代码中已经有很多引用使用StrToFloat()
。我想验证一下我获得的精度是否可以翻倍。
我已经做了一些测试,例如:
UnicodeString temp = "1234567890.12345678901234567890";
double a = StrToFloat(temp);
double b = temp.ToDouble();
这些似乎提供了与我所做的测试相同的值,但我希望验证
StrToFloat()
与.ToDouble()
相同 最佳答案
我找到了足够的引用资料来回答我自己的问题...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