除算を行っているとします。
の使用cout
:
i) 小数部分が であることが判明した場合.000000
、 usingcout
は整数 (整数) 部分のみを出力します。
ii) 小数部分が 以外の場合は、小数部分も出力.000000
しcout
ます。
したがって、どちらの場合も、cout
必要な動作につながります。
使用printf()
i) 小数部が であることが判明した場合.000000
、 を使用printf()
すると整数が出力され、その後に小数部が続き3.000000
ます。この場合、手動で処理して、出力をそのまま取得する必要があります3
。文字列への変換、組み込み関数の使用など、さまざまなアプローチに従うこと
ができ.000000
ます。printf()
3.123456
以下のコードを参照してください。除算の余りが 0 の場合、それは小数部分がであり、数値を出力する前に.000000
型キャストすることを意味するという事実を使用しています。int
上記のように、別のアプローチを使用する必要がある場合があります。
#include <iostream>
#include <cstdio>
using namespace std;
int main() {
double num1=270.0, num2=90.0;
cout<<num1/num2<<"\n"; //prints just 3
printf("%f\n", num1/num2); //prints 3.000000
if((int)num1%(int)num2==0) //means num1 is a multiple of num2. So decimal is .000000
printf("%d\n", (int)num1/(int)num2);
num2=91.0;
cout<<num1/num2<<"\n"; //prints 2.96703
printf("%f\n", num1/num2); //prints 2.967033
if((int)num1%(int)num2!=0)
printf("%f\n", num1/num2);
return 0;
}
ライブデモはこちら.