我正在尝试学习C并且遇到无法使用真正的大数字(即100位,1000位等).我知道存在这样做的库,但我想尝试自己实现它.
我只是想知道是否有人或者可以提供任意精度算术的非常详细,愚蠢的解释.
是否有printf
宽度说明符可以应用于浮点说明符,该说明符会自动将输出格式化为必要的有效位数,以便在重新扫描字符串时,获取原始浮点值?
例如,假设我打印float
到2
小数位数的精度:
float foobar = 0.9375;
printf("%.2f", foobar); // prints out 0.94
Run Code Online (Sandbox Code Playgroud)
当我扫描输出时0.94
,我没有符合标准的保证我将获得原始的0.9375
浮点值(在这个例子中,我可能不会).
我想要一种方法告诉printf
自动将浮点值打印到必要的有效位数,以确保它可以扫描回传递给的原始值printf
.
我可以使用一些宏float.h
来导出要传递的最大宽度printf
,但是是否已经有一个说明符可以自动打印到必要的有效位数 - 或者至少是最大宽度?