当我将代码从C++,Java,Python等语言移植到Matlab中时,需要它以与整数相同的方式运行.
int32(n)不适用于除法(见帖子标题).有类型吗?
编辑:猜猜是什么,事实证明我最喜欢的语言并不像我想象的那样一致.C++:
#include <cstdio>
int main() {
#define TEST(a, b) printf("%d / %d = %d\n", (a), (b), (a)/(b));
TEST(-4, 3);
TEST(4, -3);
TEST(-5, 3);
TEST(5, -3);
TEST(-1, 2);
TEST(1, -2);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
生产:
-4 / 3 = -1
4 / -3 = -1
-5 / 3 = -1
5 / -3 = -1
-1 / 2 = 0
1 / -2 = 0
Run Code Online (Sandbox Code Playgroud)
蟒蛇:
def TEST(a, b): return (a)/(b)
>>> TEST(-4, 3);
-2
>>> TEST(4, -3);
-2
>>> TEST(-5, 3);
-2
>>> TEST(5, -3);
-2
>>> TEST(-1, 2);
-1
>>> TEST(1, -2);
-1
Run Code Online (Sandbox Code Playgroud)
nne*_*neo 11
通过"正常整数除法",我认为你的意思是"地板划分",就像其他语言一样吗?
在这种情况下,使用idivide显式舍入选项:
> idivide(int32(2), int32(3), 'floor')
ans = 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3414 次 |
| 最近记录: |