打印不出浮点数

发布于 2022-09-18 17:45:51 字数 168 浏览 15 评论 0

我的平台是Xscale ixp425+snapgear linux
printf("%f\n",2.5);

输出结果是00000

我在编译中加了 -msoft-float和-mhard-float都不行

请问如何解解决,谢谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

妳是的陽光 2022-09-25 17:45:51

先确认一下,程序怎么写的?

夜巴黎 2022-09-25 17:45:51

貌似kernel中不能做浮点运算。

平安喜乐 2022-09-25 17:45:51

原帖由 liying_gg 于 2009-5-19 22:08 发表
貌似kernel中不能做浮点运算。

他的代码好像不是内核里面跑的

甜扑 2022-09-25 17:45:51

原帖由 liying_gg 于 2009-5-19 22:08 发表
貌似kernel中不能做浮点运算。

不是不能,而是不要

怂人 2022-09-25 17:45:51

这个平台没用过,不敢妄说,只讲原来遇到的问题供参考。我原来使用VxWorks+PPC时遇到过类似的问题,最终发现是库的问题:VxWorks在支持浮点寄存器的某款PowerPC上只提供了基于硬浮点的printf库,但当时因为一些原因我们必须使用-msoft-float,导致浮点运算虽然是OK的,但printf调用中浮点参数的传递不对而无法打印结果(偶尔还会导致异常)。后来因为值都不太大(一个速率值)我们改为自己把计算结果转换为两部分定点再模拟显示为浮点搞定了。
其实也可以自己重新编译printf,但VxWorks中对于printf中浮点显示的处理有些怪,依赖于一个全局的钩子(或变量?希望没记错),当时折腾了一下挺麻烦的,再加上GCC是基于文件为单位连接的,要自己实现printf就要实现它同一个.o的所有函数,就没再做下去。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文