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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- 情報処理技術者・Microsoft認定資格 応用情報処理技術者試験のシステム利用率の計算について 2 2022/03/28 07:43
- C言語・C++・C# LU分解法のピボット選択機能実装について(C言語・gcc-9) 1 2022/07/22 15:20
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- Excel(エクセル) SUMIFのIF分岐について 4 2023/04/15 12:57
- C言語・C++・C# C++で割り算の結果を昇順に出力するプログラムを作りたいのですが、例えば(double)100000 3 2022/07/15 17:46
- C言語・C++・C# C言語について質問です。 以下のような結果を出すためにはどのようなコードが良いですか?サンプルコード 3 2022/11/01 16:19
- Java java 入力された文字列を数値に置き換えて整数にし、計算をしたいです。 <を10として /を1とし 4 2022/05/16 21:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
doubleは常に%lfとするべきなのか
-
Cで3乗根を求める方法
-
プログラムでの数字につく”f”の...
-
C言語 関数プロトタイプ宣言の...
-
float型とdouble型の変数の違い...
-
C言語を実行すると-infが出てき...
-
C言語の型による処理速度の違い
-
関数におけるif文とreturn文に...
-
C言語の複素数についてです。
-
C言語で直角三角形の斜辺を求め...
-
2分法で方程式の複数の解を自...
-
int とdoubleの比較
-
平均を求めるプログラムを作っ...
-
指数形式で入力するには
-
doubleの変数にintとintの割り...
-
C言語でのsinxのマクローリン展...
-
プログラミングについての質問
-
浮動小数点の定数
-
difftime()について
-
c++について質問です
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラムでの数字につく”f”の...
-
doubleの変数にintとintの割り...
-
C 開放してるのにエラー(doubl...
-
Cで3乗根を求める方法
-
float型とdouble型の変数の違い...
-
至急です! マクロ定義で #defi...
-
C言語の型による処理速度の違い
-
int とdoubleの比較
-
関数におけるif文とreturn文に...
-
C言語初心者 構造体 課題について
-
c言語のコンパイルエラー canno...
-
C言語 関数プロトタイプ宣言の...
-
C言語を実行すると-infが出てき...
-
float?数字の後にLがつくもの
-
数値を指数部と仮数部に分離したい
-
difftime()について
-
浮動小数点数が表示されないん...
-
たくさんの数の平均を求める方...
-
DWORDの警告
-
-1.#IND00と出てしまうのですが...
おすすめ情報