
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
Cを含め多くの言語では、「整数÷整数」は整数になります。
つまり、割り切れない時は整数値に切り捨て。3 / 2 ⇒ 1
3.0 / 2.0 ⇒ 1.5
なので、割り切れない場合に切り捨てずに実数値で答えが欲しい場合は、割る数か割られる数の少なくとも一方を実数化する必要があるので、(double)を付けます。
整数値の前に (double) と書くと実数化されるのはご存じでしょうか?
逆に実数値に (int) を付けると切り捨てで整数化されます。
No.4
- 回答日時:
ans3 も同じなんだけど
5/3 と書くと 式は整数型で 1 になりますが
5.0/3.0 と書くと 式は 倍精度浮動小数点 で 1.66666666・・・
になります。
ans5 も (7+32)/5 なら整数の 7 に
(7+32)/5.0 とか (7.0+32)/5 とか
(7+32)/(double)5 とかなら 倍精度浮動小数点の 7.8 になります。
数値のリテラルが表す型、
数値演算がどの型でどのように行われ、
どの型が返るのか(型昇進や算術型変換)
は C の基本です。
よく理解していないとたんまりバグを生むので
要注意です。
No.3
- 回答日時:
除法の計算結果が異なります
(int値) / (int値)
→ 剰余を無視して、商のint値を計算
(int値) % (int値)
→ 商を無視して、剰余のint値を計算
(int値) / (double値)
→ (double値) / (double値) に暗黙的に拡張
→ 実数には剰余の概念がないので、商のdouble値を計算
(double値) / (int値)
→ 同上
No.2
- 回答日時:
> 何故(double)の入力が必要なのですか?
実際(double)を外してみればいいです。
例えば、
#include <stdio.h>
int main(void) {
printf("%d\n", (7 + 32)/5);
return 0;
}
みたいにして。
(7 + 32)/5 の答えが7になるから。
どういう解が欲しいか、ってのは場合によるんだけど(例えば商だけが欲しい場合は上の計算結果で良い)、仮にこういう「小数点以下まで割った解が欲しい」場合、型変換とか「キャスト」と言うのを行います。
5は整数型だけど、(double)をキャストすると5.0と言うdouble型になる。
言い換えると、他の手としては、例えば、
#include <stdio.h>
int main(void) {
printf("%lf\n", (7 + 32)/(1.0 * 5));
return 0;
}
とか、
#include <stdio.h>
int main(void) {
printf("%lf\n", 1.0 * (7 + 32)/5);
return 0;
}
とか、割る方か割られる方かどっちかに1.0を掛けて計算させる、なんつー事もやります(double型である1.0を掛ければ自然とどっちかはdouble型になる)。
➜ sho215 ./a.out
7.800000
➜ sho215
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
c言語でDFTのプログラムを作成...
-
C 開放してるのにエラー(doubl...
-
C言語で台形公式を使った二重積...
-
プログラムでの数字につく”f”の...
-
float型とdouble型の変数の違い...
-
doubleの変数にintとintの割り...
-
C言語の型による処理速度の違い
-
関数におけるif文とreturn文に...
-
3次方程式の求解プログラム(...
-
カウントアップタイマ
-
至急です! マクロ定義で #defi...
-
-1.#IND00と出てしまうのですが...
-
c言語のプログラミングについて...
-
Cで3乗根を求める方法
-
浮動小数点数が表示されないん...
-
C言語でdouble型の小数点の引き...
-
2次方程式の解を求めるプログ...
-
long doubleの表示方法
-
doubleは常に%lfとするべきなのか
-
方程式を2分法を用いて解くプロ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラムでの数字につく”f”の...
-
C 開放してるのにエラー(doubl...
-
float型とdouble型の変数の違い...
-
C言語 関数プロトタイプ宣言の...
-
至急です! マクロ定義で #defi...
-
C言語の型による処理速度の違い
-
doubleの変数にintとintの割り...
-
int とdoubleの比較
-
関数におけるif文とreturn文に...
-
c言語のコンパイルエラー canno...
-
C言語を実行すると-infが出てき...
-
c言語で、繰り返し文の中で、0....
-
3次方程式の求解プログラム(...
-
listに構造体を格納
-
C++で外積
-
doubleは常に%lfとするべきなのか
-
C言語初心者 構造体 課題について
-
上三角行列の解を出力するプロ...
-
指数形式で入力するには
-
待ち行列シュミレーションのプ...
おすすめ情報