C++数値型完全ガイド:実践的な使い方と数学関数
通常、数値を扱うときは、int、short、long、float、double などのプリミティブデータ型を使用します。数値データ型、取りうる値、数値範囲については、C++データ型の説明時に解説済みです。
C++での数値定義
前の章のさまざまな例ですでに数値を定義してきました。ここでは、C++でさまざまなタイプの数値を定義する統合例を示します:
Live Demo#include <iostream>
using namespace std;
int main () {
// 数値定義:
short s;
int i;
long l;
float f;
double d;
// 数値代入;
s = 10;
i = 1000;
l = 1000000;
f = 230.47;
d = 30949.374;
// 数値出力;
cout << "short s :" << s << endl;
cout << "int i :" << i << endl;
cout << "long l :" << l << endl;
cout << "float f :" << f << endl;
cout << "double d :" << d << endl;
return 0;
}
上記コードをコンパイルして実行すると、以下の結果が得られます:
short s :10 int i :1000 long l :1000000 float f :230.47 double d :30949.4
C++での数学演算
独自に作成できるさまざまな関数に加えて、C++には標準CおよびC++ライブラリに用意され、プログラムに組み込んで使用できる便利な関数も含まれています。これらは 組み込み 関数と呼ばれます。
C++にはさまざまな数値で実行できる豊富な数学演算があります。以下の表に、C++で利用できる便利な組み込み数学関数の一部を示します。
これらの関数を利用するには、数学ヘッダーファイル <cmath> をインクルードする必要があります。
| No. | 関数と目的 |
|---|---|
| 1 | double cos(double); 角度(double)を受け取り、コサインを返す。 |
| 2 | double sin(double); 角度(double)を受け取り、サインを返す。 |
| 3 | double tan(double); 角度(double)を受け取り、タンジェントを返す。 |
| 4 | double log(double); 数値を受け取り、その自然対数を返す。 |
| 5 | double pow(double, double); 第1引数は累乗したい数、第2引数は累乗の指数 |
| 6 | double hypot(double, double); 直角三角形の2辺の長さを渡すと、斜辺の長さを返す。 |
| 7 | double sqrt(double); 数値を渡すと、平方根を返す。 |
| 8 | int abs(int); 渡された整数の絶対値を返す。 |
| 9 | double fabs(double); 渡された任意の小数の絶対値を返す。 |
| 10 | double floor(double); 引数以下の最大の整数を見つける。 |
いくつかの数学演算を示す簡単な例:
Live Demo#include <iostream>
#include <cmath>
using namespace std;
int main () {
// 数値定義:
short s = 10;
int i = -1000;
long l = 100000;
float f = 230.47;
double d = 200.374;
// 数学演算;
cout << "sin(d) :" << sin(d) << endl;
cout << "abs(i) :" << abs(i) << endl;
cout << "floor(d) :" << floor(d) << endl;
cout << "sqrt(f) :" << sqrt(f) << endl;
cout << "pow( d, 2) :" << pow(d, 2) << endl;
return 0;
}
上記コードをコンパイルして実行すると、以下の結果が得られます:
sin(d) :-0.634939 abs(i) :1000 floor(d) :200 sqrt(f) :15.1812 pow( d, 2 ) :40149.7
C++での乱数生成
乱数を生成したいケースは多々あります。乱数生成について知っておくべき関数は実際には2つあります。1つ目は rand() で、これは疑似乱数のみを返します。これを修正するには、まず srand() 関数を呼び出す必要があります。
いくつかの乱数を生成する簡単な例。この例では、システム時刻の秒数を取得する time() 関数を使用して、rand() 関数をランダムにシードしています:
Live Demo#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int main () {
int i,j;
// シード設定
srand( (unsigned)time( NULL ) );
/* 10個の乱数を生成 */
for( i = 0; i < 10; i++ ) {
// 実際の乱数生成
j = rand();
cout << " Random Number : " << j << endl;
}
return 0;
}
上記コードをコンパイルして実行すると、以下のような結果が得られます:
Random Number : 1748144778 Random Number : 630873888 Random Number : 2134540646 Random Number : 219404170 Random Number : 902129458 Random Number : 920445370 Random Number : 1319072661 Random Number : 257938873 Random Number : 1256201101 Random Number : 580322989
C言語
- C++演算子完全ガイド:算術・代入・関係・論理・ビット演算子と実例
- C++コメント完全ガイド:読みやすく保守しやすいコードのためのベストプラクティス
- C++クラステンプレート完全ガイド:実践的なジェネリックプログラミング
- C++変数とデータ型:int、double、char、string、boolを徹底解説
- C++プログラミング言語:概要と主要機能
- C++定数とリテラル完全解説:型、構文、ベストプラクティス
- C++演算子完全ガイド:種類、使い方、ベストプラクティス
- C++数値型完全ガイド:実践的な使い方と数学関数
- C++リファレンス完全理解:重要概念とポインタとの違い
- C++テンプレート完全ガイド:ジェネリックプログラミングの基礎
- C++プリプロセッサ完全解説:ディレクティブがコードをどう形作るか