c++;:x/60=2,但60/x=0? 我正在C++中编写音乐发生器,我现在正在研究BPM。为了获得音符之间的等待时间,我使用了60/bpm,但计算结果为零。我已检查以确保声明了bpm,并且它是。出于某种原因尝试60/bpm会得到2。这是为什么?

c++;:x/60=2,但60/x=0? 我正在C++中编写音乐发生器,我现在正在研究BPM。为了获得音符之间的等待时间,我使用了60/bpm,但计算结果为零。我已检查以确保声明了bpm,并且它是。出于某种原因尝试60/bpm会得到2。这是为什么?,c++,C++,因为考虑到常数是整数,60/120是0。(从x/60=2推断120。)例如,您需要使用60.0/x来获得一个浮点数。因为考虑到常数是整数,60/120是0。(从x/60=2推断120。)例如,您需要使用60.0/x来获得浮点数。整数除法舍入为最接近的整数。尝试将其中一个数字更改为双精度。使用double或float。您将改为60.0/bpm。我将bpm更改为float。谢谢大家!@ryrich-非负数的整数除法截断。整数除法舍入到最近的整数。尝试将其中一个数字更改为双精度。使用double或fl

因为考虑到常数是整数,60/120是0。(从x/60=2推断120。)例如,您需要使用60.0/x来获得一个浮点数。

因为考虑到常数是整数,60/120是0。(从x/60=2推断120。)例如,您需要使用60.0/x来获得浮点数。

整数除法舍入为最接近的整数。尝试将其中一个数字更改为双精度。使用
double
float
。您将改为
60.0/bpm
。我将
bpm
更改为
float
。谢谢大家!@ryrich-非负数的整数除法截断。整数除法舍入到最近的整数。尝试将其中一个数字更改为双精度。使用
double
float
。您将改为
60.0/bpm
。我将
bpm
更改为
float
。谢谢大家!@ryrich-非负数的整数除法截断。