导言
simulink中有些模块可以配置整数的舍入模式,比如增益模块:
默认为Floor模式。
Floor
地板模式。
将正值和负值朝负无穷大方向舍入。等同于 MATLAB floor
函数。
举例:
Floor模式 | |
---|---|
1 | 1 |
1.4 | 1 |
2.5 | 2 |
3.6 | 3 |
0 | 0 |
-1 | -1 |
-1.4 | -2 |
-2.5 | -3 |
-3.6 | -4 |
Ceiling
天花板模式。
将正值和负值朝正无穷大方向舍入。等同于 MATLAB® ceil
函数。
举例:
Zero
零值模式
将数值向零舍入。等同于 MATLAB fix
函数。
相当于正数使用地板模式,负数使用天花板模式。从绝对值上看,直接抹掉小数部分。
举例:
Round
圆整模式。最接近平常所理解的“四舍五入”模式。正数和负数都是按照绝对值舍入。
将数值舍入到最接近的可表示值。如果出现对等情况,则将正数朝正无穷大方向舍入,将负数朝负无穷大方向舍入。等同于 Fixed-Point Designer round
函数。
比如,1.49 =》 1; 1.50 =》 2; -1.49 =》 -1; -1.50 =》-2
Nearest
最近模式。
将数值舍入到最接近的可表示值。如果出现对等情况,则朝正无穷大的方向舍入。等同于 Fixed-Point Designer nearest
函数。
跟Round模式不同的是,-1.5 =》 -1; -2.5 =》 -2
Convergent
收敛模式。
将数值舍入到最接近的可表示值。如果出现对等情况,则舍入到最接近的偶数整数。等同于 Fixed-Point Designer™ convergent
函数。
与上述两种四舍五入不同的是, 如果处于中间值(X.5),则向X最接近的偶数舍入。
举例:
Simplest
最简模式。
自动选择是向负无穷大方向舍入还是向零舍入,以生成尽可能有效的舍入代码。
小结:
使用以下模型,对比各类转换模式的不同:
参考资料
Integer rounding mode
指定定点运算的舍入模式。
https://ww2.mathworks.cn/help/simulink/slref/datatypeconversion.html#f6-842904.bronkud-24