c语言%g输出结果不等于原值,请各位指点

首先非常感谢各位能够帮助我!
是这样的,运行到赋值部分
n=-0.100000;
m=0.100000;
之后,我打印出结果
printf("结果区间是[%g,%g]",n,m);
输出的结果是
结果区间是[-0.1,0.0999999]
我想不明白为什么用%g输出0.100000会变成0.0999999(六个9)
以下是该函数的代码,子函数exNUM()这部分

img

因浮点数在计算机中实际是以二进制保存的,有些数不精确。
参考