愚者文档描述了最近愚者中有限的十进制浮点支持。
但我如何实际使用它呢?
例如,在Fedora 18上,愚者4.7.2。
一个简单的C程序
int main()
{
_Decimal64 x = 0.10dd;
return 0;
}
编译(当使用-std= gnu 99时)-但是我实际上如何做其他有用的事情-比如打印_Decimal64值或者将字符串转换为_Decimal64值?
这些文档谈到了“一个单独的C库实现”,用于(我假设)像printf这样的事情--我必须使用哪个额外的库来打印十进制浮点计算的结果?
我试过了
printf("%Df\n", x);
这不起作用- printf只生成了:%Df
.
1条答案
按热度按时间pcww981p1#
正如文档所述,愚者不提供I/O,因为
printf
等是由libc而不是愚者提供的。IBM为GNU C库贡献了一个扩展libdfp,它添加了
printf
钩子来使Decimal I/O工作。README中说:
但是正如下面的评论所指出的,这个库最初只在s390和powerpc硬件上支持,看起来对aarch 64的支持是在几个月前(2022年9月)添加的,并且有x86和x86_64的目录,所以现在可能为这些类型做I/O。