這個程序將計算比率。正確的輸出應該是4.50492%,但是我的輸出是0%。我懷疑這是尺寸問題。但是,double的大小是8個字節,所以long long是長度。我的程序有什麼問題?謝謝。爲什麼這個輸出是0%?
#include <iostream>
int main()
{
using namespace std;
//cout << "Enter the world's population: ";
long long world = 6898758899;
//cin >> world;
//cout << "Enter the population of US: ";
long long us = 310783781;
//cin >> us;
double ratio = us/world * 100;
char percentage = '%';
cout << "The population of the US is " << ratio << percentage << " of the world population." << endl;
return 0;
}
您正在潛水整數,因此它變爲0(因爲小數位被截斷)。使一個操作數加倍。 – Li357
嘗試'double ratio = static_cast(us)/ world * 100;'。 –
songyuanyao
發生這種情況是因爲除法是在乘法之後完成的。在劃分完成時,結果已經爲零,因此零次100仍然爲零。 – dasblinkenlight