MATLAB数据类型的问题,求解答

输入指令

x=flintmax('single')
为什么x+1的结果是错误的呢?(x+2的结果是正确的)

你看flintmax的matlab解释就知道了:

此 MATLAB 函数 返回 IEEE 双精度的最大连续整数(即 2^53)。如果高于该值,则双精度格式没有整数精度,而且并非所有整数都能精确表示

这个时候加1加2其实已经不精确了,因为已经进入浮点数范围了,有效数字不能保持了。