1.1 - int32(1) = 0 ?

2 ビュー (過去 30 日間)
Joel Stave
Joel Stave 2013 年 7 月 30 日
The calculation: 1.1 - int32(1) results in 0. Some experimentation tells me that: 1.1 - double(int32(1)) results in the expected 0.1
I would have expected the combination of a double and an int32 to result in a double. Instead it appears to be an int32. Is this the defined behavior? Can anyone point me to a document showing data type precedence in Matlab.
Thanks

採用された回答

James Tursa
James Tursa 2013 年 7 月 30 日
編集済み: James Tursa 2013 年 7 月 30 日
E.g., see here:
"Arithmetic operations that involve both integers and floating-point always result in an integer data type. MATLAB rounds the result, when necessary, according to the default rounding algorithm."
And, yes, this is not the way many other languages (e.g., Fortran, C/C++, etc) do this.

その他の回答 (1 件)

Azzi Abdelmalek
Azzi Abdelmalek 2013 年 7 月 30 日
http://www.mathworks.com/help/matlab/numeric-types.html when the operation is possible between two classes, I think the priority is for the class the less precise.

カテゴリ

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

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by