1

假设 a,b_int64变量。需要以sqrt((long double)a)*sqrt((long double)b)高精度 80 位浮点计算。

例子。(__int64)(sqrt((long double)a)*sqrt((long double)a) + 0.5) != a在许多情况下应该如此。

哪个 win32 C/C++ 编译器可以管理 80 位浮点运算?

4

3 回答 3

4

您可能不应该使用浮点数来取整数的平方根,尤其是它的支持很差,并且在某些系统上long double可能具有近似值(不准确) 。sqrtl而是查找整数平方根算法。

于 2011-08-10T20:03:11.457 回答
2

你确定 sqrt() 对长双打有效吗?

至少在某些环境中 sqrt() 用于双打, sqrtf() 用于浮点数, sqrtl() 用于长双打。

于 2011-08-10T19:21:27.743 回答
1

Embarcadero 的 C++Builder 将处理 80 位浮点。使用 long double 类型,或(从 Delphi 导入)Extnded 类型。他们是一样的。

于 2011-08-10T19:19:35.247 回答