Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

2つの浮動小数点数を乗算するCプログラムの書き方

「float」は「floating-point(浮動小数点)」の略称です。定義上、floatはコンパイラに組み込まれた基本データ型の一つで、小数点の位置が固定されない数値(浮動小数点数)を扱うために使用されます。浮動小数点型の変数とは、4320.0、-3.33、0.01226のような実数を格納できる変数のことです。

「浮動小数点」という名前の「浮動」の部分は、小数点が「浮く」ことができることを意味します。つまり、小数点の前後の桁数が可変であることを表しています。整数型では小数点以下を表現できませんが、浮動小数点型を使えば幅広い範囲の実数を柔軟に扱えます。

浮動小数点型の種類

分類最小サイズ一般的なサイズ
浮動小数点float4バイト4バイト
double8バイト8バイト
long double8バイト8、12、または16バイト

浮動小数点型の範囲と精度

サイズ範囲精度
4バイト±1.18 × 10-38 ~ ±3.4 × 1038有効数字6~9桁(通常は7桁)
8バイト±2.23 × 10-308 ~ ±1.80 × 10308有効数字15~18桁(通常は16桁)
80ビット(通常は12または16バイトを使用)±3.36 × 10-4932 ~ ±1.18 × 104932有効数字18~21桁
16バイト±3.36 × 10-4932 ~ ±1.18 × 104932有効数字33~36桁

サンプル問題

入力: a=11.23、b=6.7

出力: 75.241

解説: ここではfloat型変数を使用します。このプログラムでは、2つの数値(浮動小数点数)をfloat型変数として受け取り、その2つの数値の積を別の変数に格納して画面に表示します。float型同士の演算結果もfloat型になるため、必要に応じて明示的にキャストすることで意図した精度を保てます。

コード例

#include <stdio.h>
int main() {
    float a, b, c;
    a = 11.23; b = 6.7;
    c = (float)(a * b);
    // 結果を小数点以下3桁まで表示
    printf("%3f", c);
    return 0;
}

実行結果

75.241

このように、C言語ではfloat型変数を宣言して値を代入し、算術演算子「*」を使うだけで簡単に2つの浮動小数点数の乗算を行うことができます。より高い精度が必要な場合は、double型やlong double型の使用を検討するとよいでしょう。

  1. 2進数同士の乗算を最速で行う方法 ― 分割統治法による効率的なアルゴリズム

    2つの数が2進数(バイナリ)の文字列として与えられたとき、それらの積をいかに速く、効率的に求めるか。本記事ではその手法を詳しく解説します。 この問題は分割統治法(Divide and Conquer)を用いることで、非常に高い効率で解決できます。基本的なアイデアは、それぞれの数を前半と後半の2つの部分に分割し、部分ごとの結果を組み合わせて全体の積を得ることです。 ここで、最初の数 X を Xleft と Xright に、2番目の数 Y を Yleft と Yright に分割すると、積は次のように表されます。 さらに計算をシンプルにするため、上式は次のように変形できます。 この手法は

  2. Pythonで2つの数値を加算するプログラム:ビット演算による実装方法

    この記事では、2つの数値を加算するという問題に対する解法とアプローチについて詳しく解説します。 問題の概要 2つの大きな数値が与えられ、それらを加算した結果を出力することが求められます。 最も単純なアプローチは、オペランド同士を「+」演算子で結ぶ方法です。また、2つの数値をリストなどのイテラブルに格納し、Python標準ライブラリに用意されている組み込み関数 sum() を利用する方法もあります。 しかし、これらのアプローチでは10進数に対して直接演算を行うため、計算コストが増大するという課題があります。 ビット演算を用いた別のアプローチ そこで次に、数値をビット単位で操作する別のアプローチを