簡體   English   中英

如何在C ++中將int的類型更改為double

[英]How to change type of int to double in c++

有什么方法可以將變量初始化為通用數字類型或int,然后將其類型更改為例如double?

TYPE x = 4;
// commands changing its type
here it(variable x) became double.

我知道這很奇怪。

變量必須具有相同的名稱。

否。C++是一種靜態類型的語言。 聲明變量時,類型是固定的。

您可以使用工會做您描述的事情,但是需要格外小心,例如

union DoubleInt
{
  int i;
  double d;
};

DoubleInt X;
X.i = 4;

// ... whatever

X.d = X.i;
X.d += 0.25;

但是,工會實際上只是您迫切需要打包的明智選擇。 您還可以創建一個可以充當double或int的類,但實際上,您正在談論的事情聽起來並不像您在以C ++的方式思考。

最后, boost :: variant可能會做您想要的?

雖然這是不可能改變一個變量的類型,你可以定義能夠代表不同類型的變量的類型。 這通常稱為變體 去獲得Boost.Variant ,它允許您編寫如下代碼:

boost::variant<int, double> t_either_int_or_double;

t_either_int_or_double = 1;

// now it is "int"
assert(boost::get<int>(t_either_int_or_double);

t_either_int_or_double = 1.0;

// now it is "double"
assert(boost::get<double>(t_either_int_or_double);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM