C++ Builder 是 StrToFloat() 与 相同.ToDouble()

C++ Builder is StrToFloat() the same as .ToDouble()

本文关键字:相同 ToDouble Builder StrToFloat C++      更新时间:2023-10-16

我正在一个XE6项目中工作,但这也可能适用于其他版本的构建器。

我正在查看一个函数名称,我认为这可能会产生误导。我很好奇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 doubledouble精度更精确。 http://en.wikipedia.org/wiki/Long_double