ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

round

最も近い小数または整数への丸め

構文

  • Y = round(X)
  • Y = round(X,N)
  • Y = round(X,N,type)
  • Y = round(t)
  • Y = round(t,unit)

説明

Y = round(X)X の各要素を最も近い整数に丸めます。要素の小数部が厳密に 0.5 で、整数のちょうど中間の値である場合、関数 round はゼロ方向とは反対の絶対値が大きい方の整数に丸めます。

Y = round(X,N)N 桁に丸めます。

  • N > 0: 小数点の "右" を N 桁に丸めます。

  • N = 0: 最も近い整数に丸めます。

  • N < 0: 小数点の "左" を N 桁に丸めます。

Y = round(X,N,type) は丸めの種類を指定します。有効桁数 N 桁 (左端の桁からカウント) に丸めるには 'significant' を指定します。この場合、N は正の整数でなければなりません。

Y = round(t)duration 配列 t の各要素を最も近い秒数に丸めます。

Y = round(t,unit)t の各要素を指定された時間単位の最も近い数値に丸めます。

すべて折りたたむ

2 行 2 列の行列の要素を最も近い整数に丸めます。

X = [2.11 3.5; -3.5 0.78];
Y = round(X)
Y =

     2     4
    -4     1

pi を最も近い小数点以下 3 桁の数値に丸めます。

Y = round(pi,3)
Y =

    3.1420

数値 863178137 を最も近い 100 の倍数に丸めます。

round(863178137,-2)
ans =

   863178100

ベクトルの要素を有効桁数が 2 桁になるように丸めます。

format shortg
x = [1253 1.345 120.44]
y = round(x,2,'significant')
x =

         1253        1.345       120.44


y =

         1300          1.3          120

MATLAB® のコマンド ラインでの数値の表示形式は format コマンドで制御します。数値の桁数が多いために現在の形式で表示できない場合、MATLAB では自動的にその数値を丸めて表示します。これにより、関数 round を使用した場合に予期しない結果になることがあります。

次の減算演算の結果について考えてみます。演算の結果として 5 桁の数値が表示されます。

format short
x = 112.05 - 110
x =

    2.0500

表示された x の値から、x を小数点以下 1 桁に丸めると 2.1 になるはずです。

round(x,1)
ans =

     2

この問題の原因は、MATLAB が表示の目的で x を 5 桁に丸めたことです。関数 round は正しい解を返しています。xformat long で表示して解を確認すると、15 桁に丸めた x が表示されます。

format long
x
x =

   2.049999999999997

duration 配列の各値を最も近い秒数に丸めます。

t = hours(8) + minutes(29:31) + seconds(1.3:0.5:2.3);
t.Format = 'hh:mm:ss.SS'
t = 

   08:29:01.30   08:30:01.80   08:31:02.30

Y1 = round(t)
Y1 = 

   08:29:01.00   08:30:02.00   08:31:02.00

t の各値を最も近い時間数に丸めます。

Y2 = round(t,'hours')
Y2 = 

   08:00:00.00   09:00:00.00   09:00:00.00

入力引数

すべて折りたたむ

入力配列。スカラー、ベクトル、行列または多次元配列として指定します。複素数の X については、round は実数部と虚数部を個別に扱います。

round に複数の入力を含める場合、Xsingle または double でなければなりません。

round は、X の論理型および char 型の要素を double 型の値に変換します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | char | logical
複素数のサポート: はい

桁数。スカラー整数として指定します。N を指定した場合、関数 roundX を最も近い 10 -N の倍数に丸めます。

丸めの種類を 'significant' に指定する場合、N は正の整数でなければなりません。

丸めの種類。'decimals' または 'significant' として指定します。丸めの種類により、指定した桁数が round で小数点以下の桁数と総有効桁数のどちらとして扱われるかが決まります。'significant' を指定する場合、N は正の整数でなければなりません。その場合、関数 round は有効桁数が N 桁の最も近い数値に丸めます。

既定値は 'decimals' で、round(X,N,'decimals')round(X,N) と等しくなります。

例: round(3132,2,'significant') は、2 桁の有効桁数をもつ 3132 に最も近い数値である 3100 を返します。

データ型: char

入力の期間。duration 配列として指定します。

時間の単位。'seconds''minutes''hours''days' または 'years' として指定します。1 日を 24 時間として、1 年は厳密に 365.2425 日です。

詳細

すべて折りたたむ

互換性についての考慮事項

R2014b では、任意の小数点以下桁数および有効桁数に丸めたり、duration 値を丸めるために次の構文が追加されました。

Y = round(X,N)
Y = round(X,N,type)
Y = round(t)  
Y = round(t,unit)   

それ以前のバージョンでは、最も近い整数に丸める構文のみがサポートされます。

Y = round(X) 

ヒント

  • format shortformat long はどちらも丸めた数値を表示します。これにより、関数 round を使用した場合に予期しない結果になることがあります。

  • 数値を正確に表示するには、sprintf を使用して文字列として表示します。たとえば pi を小数点以下 2 桁まで (後ろにゼロを付けずに) 表示するには、sprintf('%.2f',pi) を使用します。

参考

| |

R2006a より前に導入

この情報は役に立ちましたか?