【发布时间】:2018-08-27 16:48:04
【问题描述】:
char q[150];
void main(void){
System_Initialization();
UART_Init_2();
while(1){
double A=23.045610;
sprintf(q,"%f\r\n",A);
UART_Tx_2(q);}}
当我读取 A 的值时,它给出 23.045410 而不是 23.045610 有人知道为什么会这样吗? 我正在使用 PIC18F67k22 控制器和 Xc8 编译器
【问题讨论】:
-
你为什么在没有 FPU 的糟糕 PIC 上使用浮点数?
-
@Lundin,我认为您结束这个问题太仓促了。这里令人惊讶的行为是双精度数很少。
-
@ThomasPadron-McCarthy 随意寻找更好的副本。此类问题之前已被问过数千次。
-
确实找到了正确的骗子顺便说一句:stackoverflow.com/questions/22412584/…