类型转换 c++, quadmath
Type conversion c++, quadmath
quadmath 库没有太多在线文档,我想使用 __complex128
类型执行两个简单的操作。
- 有没有办法轻松打印此类变量中的值?
- 如何将变量从
__complex128
转换回 complex<double>
,甚至将单个 __float128
实部和虚部转换回双精度?
第二个问题更重要,因为如果我可以转换它,我可以简单地使用 cout
!
编辑:一切都涉及以下问题。如何将 __float128
转换为 double
?
试试这个:
std::complex<double> x;
__complex128 y;
x.real(__real__ y)
x.imag(__imag__ y)
将 __float128
转换为 double
不需要任何特殊的东西:
const __float128 x{};
const double y = x;
为了清楚起见(并减少警告),您可能需要 static_cast
。
从 __complex128
构建 std::complex<T>
是 also not difficult:
auto bar(__complex128 y)
{
return std::complex<double>{
static_cast<double>(__real__ y),
static_cast<double>(__imag__ y)
};
}
quadmath 库没有太多在线文档,我想使用 __complex128
类型执行两个简单的操作。
- 有没有办法轻松打印此类变量中的值?
- 如何将变量从
__complex128
转换回complex<double>
,甚至将单个__float128
实部和虚部转换回双精度?
第二个问题更重要,因为如果我可以转换它,我可以简单地使用 cout
!
编辑:一切都涉及以下问题。如何将 __float128
转换为 double
?
试试这个:
std::complex<double> x;
__complex128 y;
x.real(__real__ y)
x.imag(__imag__ y)
将 __float128
转换为 double
不需要任何特殊的东西:
const __float128 x{};
const double y = x;
为了清楚起见(并减少警告),您可能需要 static_cast
。
从 __complex128
构建 std::complex<T>
是 also not difficult:
auto bar(__complex128 y)
{
return std::complex<double>{
static_cast<double>(__real__ y),
static_cast<double>(__imag__ y)
};
}