C++中如何将ttmath::UInt转换为double以计算大整数平方根?
解决ttmath大整数转double计算平方根的问题
你在使用ttmath库的UInt大整数类型时,想通过转成double来计算平方根,但直接强制类型转换不被支持,编译报错。
ttmath的整数类型没有重载直接转double的运算符,不过它提供了专门的成员函数ToDouble()来完成这个转换。
修改后的代码如下:
#include <ttmath/ttmath.h> #include <iostream> #include <cmath> using namespace std; int main() { ttmath::UInt<4> a = "234567890123456789012345"; // 使用ToDouble()成员函数完成转换 double d = a.ToDouble(); // 计算平方根 double b = sqrt(d); cout << b << endl; }
这个方法是ttmath库原生支持的转换方式,能正确将符合范围的大整数转成double类型,之后就可以正常调用sqrt()计算平方根了。
内容的提问来源于stack exchange,提问作者rkg125
相关产品推荐
相关产品推荐

