名前空間
変種
操作

std::trunc

提供: cppreference.com
< cpp‎ | numeric‎ | math
 
 
 
一般的な数学関数
関数
基本的な演算
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
指数関数
(C++11)
(C++11)
(C++11)
(C++11)
冪関数
(C++11)
(C++11)
三角関数と双曲線関数
(C++11)
(C++11)
(C++11)
誤差関数とガンマ関数
(C++11)
(C++11)
(C++11)
(C++11)
最も近い整数
(C++11)(C++11)(C++11)
trunc
(C++11)
(C++11)
(C++11)(C++11)(C++11)
浮動小数点操作関数
(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)
(C++11)
分類および比較
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
マクロ定数
(C++11)(C++11)(C++11)(C++11)(C++11)
 
ヘッダ <cmath> で定義
float       trunc( float arg );
(1) (C++11およびそれ以降)
double      trunc( double arg );
(2) (C++11およびそれ以降)
long double trunc( long double arg );
(3) (C++11およびそれ以降)
double      trunc( Integral arg );
(4) (C++11およびそれ以降)
1-3) 絶対値が arg より大きくない最も近い整数を計算します。
4) 任意の整数型の引数を受け取るオーバーロード集合または関数テンプレート。 2) と同等です (引数は double にキャストされます)。

目次

[編集] 引数

arg - 浮動小数点値

[編集] 戻り値

エラーが発生しなければ、絶対値が arg より大きくない最も近い整数 (別の言い方をすると、ゼロに向かって丸めた arg) が返されます。

戻り値
math-trunc.svg
引数

[編集] エラー処理

math_errhandling で規定されている通りにエラーが報告されます。

処理系が IEEE 浮動小数点算術 (IEC 60559) をサポートしている場合、

  • 現在の丸めモードは効果を持ちません。
  • arg が ±∞ であれば、それが変更されずに返されます。
  • arg が ±0 であれば、それが変更されずに返されます。
  • arg が NaN であれば、 NaN が返されます。

[編集] ノート

非整数の有限な値を丸めるとき、 FE_INEXACT が発生するかもしれません (が要求されているわけではありません)。

すべての標準の浮動小数点フォーマットにおいて、最も大きな表現可能な浮動小数点値は正確な整数であるため、この関数それ自体はオーバーフローすることはありません。 しかし任意の整数型 (std::intmax_t も含みます) は、整数変数に格納するとき、結果がオーバーフローするかもしれません。

浮動小数点から整数型への暗黙の変換もゼロに向かって丸めますが、ターゲットの型で表現可能な値に限定されます。

[編集]

#include <cmath>
#include <iostream>
int main()
{
    std::cout << std::fixed
              << "trunc(+2.7) = " << std::trunc(+2.7) << '\n'
              << "trunc(-2.9) = " << std::trunc(-2.9) << '\n'
              << "trunc(-0.0) = " << std::trunc(-0.0) << '\n'
              << "trunc(-Inf) = " << std::trunc(-INFINITY) << '\n';
}

出力例:

trunc(+2.7) = 2.000000
trunc(-2.9) = -2.000000
trunc(-0.0) = -0.000000
trunc(-Inf) = -inf

[編集] 関連項目

指定された値より大きくない最も近い整数を返します
(関数) [edit]
指定された値より小さくない最も近い整数を返します
(関数) [edit]
(C++11)(C++11)(C++11)
最も近い整数を返します。 ちょうど中間の場合はゼロから離れる方向に丸めます
(関数) [edit]