小编Sha*_*aoh的帖子

printf无法在屏幕上正确打印float/double

最近,我正在使用在MIPS架构上运行的特殊嵌入式操作系统.我不太了解它.当我使用printf函数时,看到一些奇怪的东西:

int a = 10;
float b = 3.14;
double c = 3.14;

printf("a is %d\n", a);           // I'm sorry I forgot to type the parameters just now
printf("b is %f\n", b);           //  Error
printf("c is %f\n", c);           //  Error
Run Code Online (Sandbox Code Playgroud)

输出是:

a is 10
b is 0.000000
Run Code Online (Sandbox Code Playgroud)

a是对的,但b似乎是错的,c甚至无法打印.函数printf来自newlib(一个C语言库).注意,可以正确计算浮点数/双数,正确存储在内存中,并且它们无法正确打印.

我认为操作系统可能有问题.我只是想知道可能是什么原因.有没有人以前遇到过这个问题?

c embedded printf operating-system mips

3
推荐指数
1
解决办法
2817
查看次数

标签 统计

c ×1

embedded ×1

mips ×1

operating-system ×1

printf ×1