C の %G 書式指定子

Waqar Aslam 2023年10月12日
  1. C プログラミング言語の書式指定子
  2. C の %g フォーマット指定子
C の %G 書式指定子

この記事では、C プログラミング言語を使用して、書式指定子 %g について学習します。

C プログラミング言語の書式指定子

書式指定子は、C で使用できる特別な種類の文字列または演算子にすぎません。これらは、ユーザーからの入力を収集し、コンソール用の情報を生成するときによく使用されます。

それらの目標は、入力または生成される情報のデータ型をコンパイラに示すことです。 データ型について話すときは、整数、文字列、浮動小数点数などを意味します。

独自のフォーマット指定子のセットを持たない単一のデータ型はありません。 % 記号は常に書式指定子の最初の文字であり、その後に他の文字列が続きます。

これらは、C プログラミング言語で、入力用の scanf と出力用の printf で使用されます。 以下は、C プログラミング言語で使用されるフォーマット指定子の一部です。

フォーマット指定子 説明
%g %e または %E と同様
%f 浮動小数点書式指定子
%c 文字書式指定子
%s 文字列書式指定子
%e フロートの科学表記法
%d 整数フォーマット指定子
%x 16 進表現

C の %g フォーマット指定子

これは、10 進浮動小数点数を出力するための固定精度標準を使用し、その目的で使用されます。 C プログラミング言語では、C の double および float データ型に格納される 10 進数のデータを操作するときに、%g フォーマット指定子が使用されます。

%g は、%f (単純な float または double) または %e (科学表記法) のいずれかで表される数値を取り、2つの短い形式で数値を返します。

次の例では、firstValue, secondValue,、および thirdValue, と呼ばれる double データ型の 3つの値を取得し、表記法 %g および %G を使用してこれらの値を 1つずつ出力します。 .

コード例:

#include <stdio.h>

int main() {
  double firstValue = 123.45;
  printf("Printing 123.45 using %%g %g\n", firstValue);
  printf("Printing 123.45 using %%G %G\n\n", firstValue);

  double secondValue = 123.45e8;
  printf("Printing 123.45e8 using %%g %g\n", secondValue);
  printf("Printing 123.45e8 using %%G %G\n\n", secondValue);

  double thirdValue = 123.45e-8;
  printf("Printing 123.45e-8 using %%g %g\n", thirdValue);
  printf("Printing 123.45e-8 using %%G %G\n", thirdValue);

  return 0;
}

出力:

Printing 123.45 using %g 123.45
Printing 123.45 using %G 123.45

Printing 123.45e8 using %g 1.2345e+10
Printing 123.45e8 using %G 1.2345E+10

Printing 123.45e-8 using %g 1.2345e-06
Printing 123.45e-8 using %G 1.2345E-06
著者: Waqar Aslam
Waqar Aslam avatar Waqar Aslam avatar

I am Waqar having 5+ years of software engineering experience. I have been in the industry as a javascript web and mobile developer for 3 years working with multiple frameworks such as nodejs, react js, react native, Ionic, and angular js. After which I Switched to flutter mobile development. I have 2 years of experience building android and ios apps with flutter. For the backend, I have experience with rest APIs, Aws, and firebase. I have also written articles related to problem-solving and best practices in C, C++, Javascript, C#, and power shell.

LinkedIn