gpt4 book ai didi

c++ - 将浮点 vector 转换为 double

转载 作者:太空宇宙 更新时间:2023-11-04 12:45:57 26 4
gpt4 key购买 nike

我对 C++ 比较陌生,所以请原谅我对此的无知。我试图将 double vector 转换为浮点 vector 以供在某些情况下使用(我知道存在精度损失)。 vector 的结构很简单,

struct Dvector
{
public:

double X;
double Y;
double Z;

是否有一个简单的函数可以创建,可以在多个区域调用以将其转换为 float 结构,例如?

   struct Fvector
{
public:

float X;
float Y;
float Z;

最佳答案

要将 Fvector 转换为 Dvector,您可以使用 user-defined conversion .看看下面的代码。

#include <iostream>

using namespace std;

struct Dvector
{
public:
double X;
double Y;
double Z;
};

struct Fvector
{
public:
float X;
float Y;
float Z;

explicit operator Dvector()
{
Dvector d;
d.X = static_cast<double>(X);
d.Y = static_cast<double>(Y);
d.Z = static_cast<double>(Z);

return d;
}
};

int main()
{
Fvector f = {1.0f, 2.0f, 3.0f};
Dvector d = static_cast<Dvector>(f);
std::cout << d.X << d.Y << d.Z;
return 0;
}

关于c++ - 将浮点 vector 转换为 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51590952/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com