在C 中,Int類型的變數用於儲存正數或負數的整數值,但該類型無法包含小數值。為此,有float和double值。 Double資料型別設計用來保留小數點後七位的小數值。整數和雙精確度變數之間的轉換可以由編譯器自動處理,稱為「隱式」轉換,也可以由程式設計師明確觸發給編譯器。我們將在以下章節中討論不同的轉換方式。
隱式類型轉換是由編譯器自動完成的。為了實現這一點,我們需要兩個變數;一個是整數類型的變量,另一個是浮點類型的變數。然後我們只需將整數值或變數賦給浮點變量,其他的一切都將由編譯器處理。
int input = <integer value>; double output = input;
#include <iostream> using namespace std; double solve(int value) { double opVal = value; return opVal; } int main() { int ip = 25; double op = solve(ip); cout<< "The input value is: " << ip << endl; cout<< "The output value is: " << op << endl; return 0; }
The input value is: 25 The output value is: 25
正如我們所看到的,轉換過程非常簡單。我們不需要執行任何特殊的操作,只需將輸入變數賦值給輸出變數即可。
明確轉換發生在程式設計師明確指示編譯器將一個資料型別轉換為另一個資料型別時。這可以透過兩種方式實現,一種是在賦值過程中指定資料類型,另一種是使用static_cast。我們先描述第一種方法。
這也可以用兩種不同的方式來完成。一種是C風格的版本,另一種是函數風格的轉換。
我們在來源變數或括號中包含的值之前提到了結果資料類型。
int input = <integer value>; double output = (double) input;
#include <iostream> using namespace std; double solve(int value) { double opVal = (double) value; return opVal; } int main() { int ip = 35; double op = solve(ip); cout<< "The input value is: " << ip << endl; cout<< "The output value is: " << op << endl; return 0; }
The input value is: 35 The output value is: 35
我們提到了結果資料類型,並且在傳遞參數給函數時,將來源值括在括號中。
int input = <integer value>; double output = double(input);
#include <iostream> using namespace std; double solve(int value) { double opVal = double(value); return opVal; } int main() { int ip = 45; double op = solve(ip); cout<< "The input value is: " << ip << endl; cout<< "The output value is: " << op << endl; return 0; }
The input value is: 45 The output value is: 45
int input = <integer value>; double output = static_cast<double>(input);
#include <iostream> using namespace std; double solve(int value) { double opVal = static_cast<double>(value); return opVal; } int main() { int ip = 55; double op = solve(ip); cout<< "The input value is: " << ip << endl; cout<< "The output value is: " << op << endl; return 0; }
The input value is: 55 The output value is: 55
從最後三個例子中,我們可以看到無論是使用static_cast、C風格的轉換或函數風格的轉換,明確轉換過程幾乎是相似的。在這三種情況下,我們都必須在賦值之前提到結果資料型態。
涵蓋了將整數轉換為雙精度值的幾種方法。程式設計師必須確定哪種轉換方法最適合特定情況,因為不同的轉換場景需要不同的轉換方法。然而,由於隱式轉換是自動進行的,程式設計師不必擔心執行複雜的策略。
以上是C++程式將int變數轉換為double的詳細內容。更多資訊請關注PHP中文網其他相關文章!