float input = whatever;
long output = (long)(0.5f + input);
Run Code Online (Sandbox Code Playgroud)
这对于我在 MSP430 上的应用程序来说是低效的,使用编译器提供的浮点加法支持库。
我在想,这种特殊的“最近整数”舍入可能有一个聪明的“技巧”,避免了简单的浮点加法,也许是通过直接“位旋转”浮点表示,但我还没有找到这样的。任何人都可以建议这样的技巧来舍入 IEEE 754 32 位浮点数吗?