Division int32 numbers in MATLAB R2019b

2 ビュー (過去 30 日間)
vadim onuchin
vadim onuchin 2020 年 10 月 27 日
コメント済み: Steven Lord 2020 年 10 月 27 日
Let's see some examples:
first:
1140 / 32
ans =
35.6250
second:
int32(1140) / int32(32)
ans =
int32
36
third:
int32(1140 / 32)
ans =
int32
36
So, why division with int32 numbers is not equivalent like in C++?

採用された回答

vadim onuchin
vadim onuchin 2020 年 10 月 27 日
編集済み: vadim onuchin 2020 年 10 月 27 日
So, I found solution.
Need to use special division:
idivide(int32(1140), int32(32))
ans =
int32
35
  2 件のコメント
Bruno Luong
Bruno Luong 2020 年 10 月 27 日
Just wonder what is the risk to overload integer "/" with idivide?
Beside Image Proceesing toolbox where else does MATLAB stock uses integers?
Steven Lord
Steven Lord 2020 年 10 月 27 日
FYI the way MATLAB performs arithmetic on integers is documented here.

サインインしてコメントする。

その他の回答 (1 件)

Cris LaPierre
Cris LaPierre 2020 年 10 月 27 日
編集済み: Cris LaPierre 2020 年 10 月 27 日
int32 is for storing 32-bit integers. The result of the division is rounded to the closest integer value.
int32(32.5)
ans = int32 33
If you want to control how the rounding is handled, use idivide.

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

タグ

製品


Translated by