0Pricing
C Academy · レッスン

丸めと絶対値

floor、ceil、round、fabsを使います。

「丸めと絶対値」はCoddyKit上の無料C Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはC Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 C Academyコースには全4レッスンが含まれています。

丸めと絶対値

このレッスンでは、数値を調整する関数を扱います。丸めにはfloor、ceil、round、truncを使い、絶対値にはfabsを使います。

これらはすべてmath.hにあり、double型の値を扱います。

floor関数

floor(x)は、負の無限大の方向に、最も近い整数へ切り下げます。

したがって、floor(3.9)は3.0、floor(-1.2)は-2.0です。

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

int main(void) {
    printf("%.1f\n", floor(3.9));
    printf("%.1f\n", floor(-1.2));
    return 0;
}

ceil関数

ceil(x)は、正の無限大の方向に、最も近い整数へ切り上げます。

したがって、ceil(3.1)は4.0、ceil(-1.8)は-1.0です。

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

int main(void) {
    printf("%.1f\n", ceil(3.1));
    printf("%.1f\n", ceil(-1.8));
    return 0;
}

round関数

round(x)は、最も近い整数に丸めます。ちょうど中間の場合は、0から遠ざかる方向に丸めます。

したがって、round(2.5)は3.0、round(2.4)は2.0です。

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

int main(void) {
    printf("%.1f\n", round(2.5));
    printf("%.1f\n", round(2.4));
    return 0;
}

trunc関数

trunc(x)は小数部分を単純に切り捨て、常に0に近づく方向へ移動します。

したがって、trunc(3.9)は3.0、trunc(-3.9)は-3.0です。

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

int main(void) {
    printf("%.1f\n", trunc(3.9));
    printf("%.1f\n", trunc(-3.9));
    return 0;
}

4つの関数を比較する

値が2.7の場合、結果は次のように異なります。

  • floor(2.7) = 2.0(切り下げ)
  • ceil(2.7) = 3.0(切り上げ)
  • round(2.7) = 3.0(最も近い値)
  • trunc(2.7) = 2.0(0に近づける)

目的に合った関数を選んでください。

fabsで絶対値を求める

fabs(x)は、浮動小数点数の絶対値を返します。絶対値とは0からの距離で、常に負ではありません。

したがって、fabs(-7.5)は7.5です。

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

int main(void) {
    printf("%.1f\n", fabs(-7.5));
    printf("%.1f\n", fabs(7.5));
    return 0;
}

fabsとabsの違い

注意してください。abs(stdlib.hにあります)は整数を扱い、fabs(math.hにあります)はdoubleを扱います。

doubleにabsを使うと、先に小数部分が切り捨てられます。浮動小数点数には必ずfabsを使ってください。

int型に変換する

これらの関数はdoubleを返します。整数をintとして格納するには、結果をキャストしてください。

まずroundで丸めてからキャストするのが安全です。そうすれば、2.999のような値が誤って2になることを防げます。

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

int main(void) {
    double x = 4.6;
    int whole = (int)round(x);
    printf("whole = %d\n", whole);
    return 0;
}

距離の例

fabsは、どちらの値が大きいかに関係なく、2つの値の差を測るのに便利です。

ここでは、2つの温度の差を求めます。

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

int main(void) {
    double a = 5.0, b = 12.5;
    printf("gap = %.1f\n", fabs(a - b));
    return 0;
}

小数点以下の桁数を指定して丸める

小数点以下2桁に丸めるには、100を掛けてから丸め、その後100で割ります。

この方法ではroundを使って、金額のような値を整えられます。

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

int main(void) {
    double price = 3.14159;
    double r = round(price * 100.0) / 100.0;
    printf("%.2f\n", r);
    return 0;
}

クイックチェック

それぞれの丸め関数の動作を思い出しましょう。

まとめ

floor(切り下げ)、ceil(切り上げ)、round(最も近い値)、trunc(0に近づける)、そしてdoubleの絶対値を求めるfabsを学びました。

浮動小数点数にはabsではなくfabsを使い、整数が必要な場合はintにキャストすることを覚えておいてください。math.hのコースを最後まで終えました。お疲れさまでした。

よくある質問

「丸めと絶対値」レッスンは無料ですか?

はい。「丸めと絶対値」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、C Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 C Academyコースには全4レッスンが含まれています。

「丸めと絶対値」で何を学びますか?

floor、ceil、round、fabsを使います。 ブラウザで直接実行するハンズオンコードでC Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

C Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのC Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「丸めと絶対値」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このC Academyレッスンでコードを書いて実行できますか?

はい。すべてのC Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. math.hをインクルードする
  2. べき乗と平方根
  3. 三角関数と対数
  4. 丸めと絶対値
← C Academyに戻る