とけろぐ

C/C++の除算における小数

yukicoder No.388 アンケート機能

https://yukicoder.me/problems/no/338

この問題を解いていて嵌った落とし穴についてメモ

C/C++で除算を行うときに(整数型;intなど)/(整数型;intなど)だと商を入れる変数が実数型(例:float、double)であっても、小数点以下は切り捨てられてしまう。

例)

int a=12;
int b=5;
double ans;
ans=a/b;
cout<<ans<<endl;
//出力:2

防ぐためには、割られる数または割る数を実数型(float,double等)にすればよい。

例)

double a=12;
double b=5;
double ans;
ans=a/b;
cout<<ans<<endl;
//出力:2.4

しょう油とめんつゆをまちがえてしまうような初歩的なミスだった。チャンチャン