我已經開始使用「C++ Primer by Stephen Prate」學習C++,並且我正在嘗試完成其中一個練習。我想知道是否應該將arc_to_minute & arc_to_degree聲明爲float,或者像我已經做的那樣將它們轉換爲float。任何提示歡迎!聲明浮點數或浮點數嗎?
#include <iostream>
int main()
{
using namespace std;
cout.setf(ios_base::fixed, ios_base::floatfield);
const int arc_to_minute = 60;
const int arc_to_degree = 60;
float degrees;
float minutes;
int seconds;
cout << "Degrees: ";
cin >> degrees;
cout << "Minutes: ";
cin >> minutes;
cout << "Seconds: ";
cin >> seconds;
//convert seconds to minutes and add
minutes = minutes + seconds/float (arc_to_minute);
//covert minutes to degrees and add
degrees = degrees + minutes/float (arc_to_degree);
cout << degrees;
}
在這種情況下,轉換可能會在編譯時完成,因爲沒有使用int flavor的操作,並且它是局部變量。但是,這通常不是真的。在我知道的任何芯片上從int轉換爲double時,編譯器必須發出指令以從int寄存器複製到浮點寄存器,該寄存器將執行轉換。 – Joel 2010-03-09 21:55:09
我的意思是在這種情況下,更新澄清。 – GManNickG 2010-03-09 21:57:53