假设 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 位浮点运算?
假设 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 位浮点运算?
您可能不应该使用浮点数来取整数的平方根,尤其是它的支持很差,并且在某些系统上long double
可能具有近似值(不准确) 。sqrtl
而是查找整数平方根算法。
你确定 sqrt() 对长双打有效吗?
至少在某些环境中 sqrt() 用于双打, sqrtf() 用于浮点数, sqrtl() 用于长双打。
Embarcadero 的 C++Builder 将处理 80 位浮点。使用 long double 类型,或(从 Delphi 导入)Extnded 类型。他们是一样的。