gpt4 book ai didi

java - 为什么matlab和java的ceil函数不同?

转载 作者:行者123 更新时间:2023-12-01 07:57:31 25 4
gpt4 key购买 nike

我在JAVA中使用ceil函数。我想将该函数与 MATLAB 进行比较。但是,当我在 MATLAB 中使用它时,它返回不同的值。例如,我有 H=7,我在 JAVA 中使用该代码

int H=7;
double Hp= Math.ceil(H/2);

它返回 3。不过,我在 MATLAB 中使用该函数

Hp= ceil(H/2);

它返回 4。这里的真实情况是什么?如何在JAVA中实现类似ceil函数的结果?预先感谢您

最佳答案

回答“如何在JAVA中实现类似ceil函数的结果?”,可以使用idivide对参数之一进行整数转换:

H  = 7;
Hp = idivide(H,int8(2));

默认情况下,这将执行除法并将小数部分舍入为 0。 ceil 函数是不必要的,因为整数除法会生成整数。您可以将其包装在 ceil 中,但什么也不会发生。

<小时/>

注意:需要使用idivide,因为 MATLAB 的整数算术实现(在我的经验中相当违反直觉)实际上将整数除法的小数部分四舍五入为最接近的整数(至少在R2014b):

Hp = int8(7) /int8(2) ; % 3.5 float => 4 integer
Hp = int8(34)/int8(10); % 3.4 float => 3 integer

我怀疑这与 rdivide 函数的某些类型转换有关。

关于java - 为什么matlab和java的ceil函数不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28144423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com