我有一个代码:
if (Ly0 > 32767) {
buffer[index] = 32767;
} else if (Ly0 < -32768) {
buffer[index] = -32768;
} else {
buffer[index] = (short) Ly0;
}
buffer
是短类型。Ly0
是浮点型。
我需要将浮点数转换为短,如果浮点数的整数部分大于短最大值短应该等于短最大值,并且如果浮点数的整数部分小于短最小值短应该等于短最小值,在其他情况下我需要将 float 转换为 short 并仅获取 float 的整数值。
换句话说,我需要从浮点数转换为短浮点数,如果浮点数超出短值范围,则截断浮点数。
问题是这种方法不够快速和持久。
将浮动转换为短的任何更快和最干净的方法。