C言語関係掲示板

過去ログ

No.291.整数部分と小数点以下の部分に分けて出力するには?

[戻る] [ホームページ]

No.1749

整数部分と小数点以下の部分に分けて出力するには?
投稿者---tpo(2002/06/19 18:38:22)


1つの実数を読みこんで、整数部分と小数点以下の部分に分けて出力するにはどうすればいいのですか?6098.543が6098と0.543という感じです。

No.1751

Re:整数部分と小数点以下の部分に分けて出力するには?
投稿者---shu(2002/06/19 20:07:33)


>1つの実数を読みこんで、整数部分と小数点以下の部分に分けて出力するにはどうすればいいのですか?6098.543が6098と0.543という感じです。

実数を1で割ると、余りは少数部になります。

No.1752

Re:整数部分と小数点以下の部分に分けて出力するには?
投稿者---ともじ(2002/06/19 22:31:06)


こんばんは。

>1つの実数を読みこんで、整数部分と小数点以下の部分に分けて出力するにはどうすればいいのですか?6098.543が6098と0.543という感じです。

	double	x = 6098.543;
	
	printf("%d\n",(int)x);
	printf("%f\n",x-(int)x);

ではどうでしょう。


No.1753

Re:整数部分と小数点以下の部分に分けて出力するには?
投稿者---かずま(2002/06/19 22:53:33)


>1つの実数を読みこんで、整数部分と小数点以下の部分に分けて出力するにはどうすればいいのですか?
> 6098.543が6098と0.543という感じです。

#include <stdio.h>
#include <math.h>

int main()
{
    double x;

    while (scanf("%lf", &x) == 1) {
        double integer = (x < 0) ? ceil(x) : floor(x);
        double fraction1 = x - integer;
        double fraction2 = fmod(x, 1);
        printf("%f %f %f\n", integer, fraction1, fraction2);
    }
    return 0;
}



No.1754

Re:整数部分と小数点以下の部分に分けて出力するには?
投稿者--- 2児のオヤジ です。(2002/06/19 23:46:07)


>>1つの実数を読みこんで、整数部分と小数点以下の部分に分けて出力するにはどうすればいいのですか?

まづは、型変換 
http://www9.plala.or.jp/sgwr-t/c/sec03.html

を参照されると、わかりやすいと思います。

No.1763

Re:整数部分と小数点以下の部分に分けて出力するには?
投稿者---Aki(2002/06/20 22:19:06)


はじめまして。初書き込みです。

#include <stdio.h>
#include <math.h>

int main(void)
{
    double x, integer, fraction;

    while (scanf("%lf", &x) == 1) {
        fraction = modf(x, &integer);
        printf("%g = %g + (%g)\n", x, integer, fraction);
    }
    return 0;
}