单片机型号:STM32F415VGT6
我在程序中定义了一个u32类型的变量 a,然后通过串口给 a 一个值,然后在单片机中计算a/225000.0得到一个浮点数,但是这个浮点数比实际值大了1.8,也就是当 a 的值为12640500时,计算器算出来应该是56.18,但是单片机算出来是57.97..... 。这是为什么?我用 a 除以200000.0,218180.0,220000.0都没出现这样的情况,值都是比较准确的;只要除以225000.0就会出错。于是我打算在相除后直接减去多余的1.8,像这样(a/225000.0) - 1.8;但是结果还是57.97..... ,也就是减去1.8没起作用,根本就没做这个运算。实在是搞不懂了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
Hello
//=====================//
u32 a;
a = 12640500;
a = (a/225000.0)*100;
printf("%d",a);
//=====================//
我用上方編碼去算,出來是5816喔,
所以我猜可能是你的"div"變數,但因你沒貼這個變數的定義,就留給你當參考方向了。
一周热门 更多>