2
Matlab似乎有一个刺激性的特点。我不明白为什么两个陈述的结果是不同的。对变量的隐式声明导致它具有双重类型的知识并不能帮助我理解。有人能解释他们有什么不同吗?这是代码。为什么两个陈述会导致不同的结果?
K>> m = int16(2799)
m =
2799
K>> n = int16(2800)
n =
2800
K>> int16(0.5 * abs(n - m) - 0.5)
ans =
1
K>> int16 (0.5 * abs(2799 - 2800) - 0.5)
ans =
0
K>>
”整数或整数数组和标量双精度浮点数,这会得到与整数操作数具有相同数据类型的结果。“从http://www.mathworks.co.uk/help/matlab/matlab_prog/integers.html#f2-98095 –
谢谢,我总是欣赏官方文档的链接。相应地编辑我的答案。 –
我正在为这个问题写一个答案,但是当我在文档中注意力分散时,你打败了我!奇怪的语义确实如此,我更喜欢C语言。 –