• ベストアンサー

C言語で。。。。。

C言語のプログラミングの勉強をしているのですが、 5.4のような小数点以下ありの数値の整数値を表示させる関数ってありますか??ネットを探してみてもよく分からなくて困っています(><)よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

整数型の変数に代入するだけで少数部は切り捨て(正確には丸め)られますよ。 例えば、 ---------- float a = 5.4f; int b = 0; b = (int)a; printf("a1 = %f\n", a); printf("a2 = %d\n", b); ----------

nishinori
質問者

お礼

そんな方法があったとは! ありがとうございます。助かりました。

その他の回答 (3)

  • yama5140
  • ベストアンサー率54% (136/250)
回答No.4

>5.4のような小数点以下ありの数値の整数値を表示させる関数ってありますか??   5.999999 であっても、5 と表示したいということですよね・・。  「キャスト」が簡単かと思います(下の (int) 部分)。   double dVal = 5.999999;   printf( "%d\n", (int)dVal );

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.3

浮動小数点数の整数部と小数部を分離したいのであれば、modf関数を使ってください。 整数部だけを文字列にしたいのであれば、printf系関数で書式指定を"%.0f"にすればOKです。ただし、端数の丸め方は(多くの実装では)いわゆるJIS丸めになります。

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

実数の整数部だけ取り出すにはfloor、またはceilを使います。 前者は切り捨て、後者は切り上げです。負の値では絶対値が逆に なります。まぁ、百聞は一見にしかずなので、やってみてください。 http://msdn.microsoft.com/ja-jp/library/x39715t6.aspx http://msdn.microsoft.com/ja-jp/library/atdhw2dx.aspx

nishinori
質問者

お礼

なるほど!そうやるのか!ありがとうございます!

関連するQ&A

  • C言語

    C言語のプログラムで『正の整数を読み込み、その整数より小さい3の倍数を全て表示するプログラムを作る』 これをどなたかプログラミングしてください。お願いします。

  • C言語について

    最近C言語を始めたばかりです。 誰か教えてください。 私の勉強している、明解C言語入門の演習2-6で、  以下に示すように、身長を整数値として読み込んで、標準体重を実数で表示するプログラムを作成せよ。標準体重は(身長-100)×0.9によって求め、その小数点以下は、1桁だけ表示すること。    身長を入力してください。  標準体重は67.5です。 がわかりません。  念のため、私の作ったものを参考にして答えを教えていただけないでしょうか? #include <stdio.h> int main(void) { int na; puts("身長を入力してください。"); printf("身長:"); scanf("%d",&na); printf("標準体重は[%.1f]です。%n", (double)(na - 100) * 0.9); return(0); }

  • linux RedHatでC言語

    整数、単精度(float)、倍精度(double)の変数変換、各種書式付出力について教えてください。 また、よろしければ、40桁の整数、有効数字20桁の実数、小数点以下15桁の実数を表示する方法について教えてください。 本当にC言語の初歩だとは思いますが教えてください。

  • excel関数教えてください。

    表にしてあって、A列には任意の数字がはいるようなってます。関数はB、C、D列に使いたいのですが B列:Aを3で割り小数点以下に.666が出たときには整数に2を足して、.333の場合は整数に1を足して表示したい。 C列:Aを3で割り小数点以下に.666か.333の場合小数点以下を切り捨てたい D列:Aを3で割り小数点以下に.666か.333の場合小数点以下を切り上げたい 例としては   A   B   C   D 1 10,000 33,334 33,333  33,333 2 20,000 66,668 66,666  66,666 上のような表です。Aに入る数値はいろんな 数値があります。関数に該当しないものは 3で割った数字をそのまま表示したいです。 宜しくお願いします。

  • C言語で四則演算を使って結果が10になる数式

    C言語のプログラミングについて質問です。 四つの一桁の数字を入力して四則演算を使って結果が10になる数式を作りたいのですが、イメージが湧きません。 教えていただけますか? 例:1234enterkey 答え2*3+1*4 数値の変数はint型でお願いします。int型ですので小数点以下を使って10になる結果は出さなくて宜しいです。お願いします。

  • C言語によるガンマ関数の記述

    今、C言語を用いてガンマ関数を計算する方法を模索中でです。 理想的にはガンマ関数の引数に数値を入れたら戻り値を返すというのがいいのですがそうもうまくいかないと思います。 そこで以下のような形で整数の場合と非整数の場合で作ることを考えています。しかし、引数が整数のときはわかるのですが、非整数のときがわかりません。どうしたらよいでしょうか。 以下に関数の概要を掲載します。 ==========関数の概要=========== 関数名:Gamma(x) 戻り値:double 引数:x[double] 1)引数が0より大きい整数(1,2,3...)のとき   階乗の自己回帰文を使用して計算 2)引数が0より大きい非整数の場合 ==========▲ここまで==========

  • C言語のことで…

    C言語のポインタの勉強をしているのですが、 9×9の整数型2次元配列を格納する関数kuku_makeを作成。 結果確認はmainで上記関数を呼び出して結果を表示。 void kuku_make(int kuku[][9]) 方向性だけでもいいので教えてください。

  • (C,C++言語)関数の引数は自動キャストされる?

    プログラミング言語C,C++の数値計算に関する質問です. 整数データ変数同士のみの計算結果は小数点以下は切り捨てられますよね. もし実数型で計結果を得たいときは,int変数を(double)や(float)でキャストしてあげなければならないことは知っています. ここで,仮引数リストにdouble型変数が設定されている関数の引数にint型変数を与えた時,関数の呼び出し時にキャストしなくても自動でキャストされるのでしょうか. 以下のサンプルコードを作成し,実行してみた結果を次に示します. ---サンプル--- #include <iostream> using namespace std; void printDouble(double val, double val2) { cout << "(double)val = " << val / val2 << endl; } int main(void) { for (int i = 1; i < 5; i++) { cout << i / (i * 2) << endl; printDouble(i,i*2); } } -----実行結果---- 0 (double)val = 0.5 0 (double)val = 0.5 0 (double)val = 0.5 0 (double)val = 0.5 ------------------------- 関数の外での計算は整数に丸められてしまうので i / ( i * 2 ) 計算結果はゼロに,関数の中では与えられた i はdouble型として扱われるので小数点以下の値も残っているということですよね. この場合,printDouble関数へ整数を与えるときには printDouble( (double)i , (double)( i * 2 ) ); といったようにわざわざキャストしなくても自動で仮引数の型でキャストされて関数が呼び出されると理解してもよいのでしょうか. 実行結果から明らかだろ,思われてしまうかもしれませんが,何かの参考書に記述されているのを見たり,人からそう教わったわけではなく,また関数のオーバーロードのこともありますので,質問させて頂きました.よろしくお願いいたします.

  • C言語プログラミング

    あなたは何歳ですか。 (数値を入力) 10年後は○○歳ですね。 と表示されるプログラミングをお願いします。C言語でお願いします

  • C言語について。

    C言語プログラマとしては、スタートアップコードは・・・ ・自分が書いたプログラムを、直接動かすために必要なライブラリ ・それはコンパイル後、リンカによって追加されるライブラリこれは、 どういう意味でしょうか?分かりやすく教えていただけると幸いです。すみません。で、 以下のかぶくんまんさんの回答です。 https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11247611941 で、 C言語におけるプログラミングとは「main関数を書くこと」に他ならない。なぜ「main関数を書く」ことがC言語におけるプログラミングに他ならないのかと言えば、それは偏に「C言語のコンパイラはmain関数を呼び出すプログラムを生成するから」です。それがmain関数を求めるので結果的にmain関数がリンクされ、そしてmain関数が求めるままに他の関数もリンクされていくわけです。 で、その「main関数を呼び出すプログラム」こそが、C言語における「スタートアップコード」。 という回答で、main関数以降は、プログラマが書くのですよね?プログラマが関数をリンクさせる様なプログラムを書くということでしょうか?教えていただけると幸いです。すみません。 という所が分かりません。教えていただけると幸いです。すみません。以下のURL https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12247932542

専門家に質問してみよう