gpt4 book ai didi

c - C语言中如何求重复小数

转载 作者:行者123 更新时间:2023-11-30 21:48:57 25 4
gpt4 key购买 nike

如何在 C 中获得重复小数 0.99999999...?

1.0/9.0 会给我重复小数:0.1111111,但如果使用double = 1.0/9.0 * 9.0 结果是 1.0

谢谢。

最佳答案

您遇到的问题是,1/9 在 10 基数 (0.1111..) 和 16 基数 (0.1c71c7..) 中都是重复小数,当您再次乘以 9 时,您会得到 1.. . 就浮点例程而言。在 C 中得到 0.9999 的方法是通过减去一点点来分解重复的小数,这样它就不会四舍五入到 1。如果你只想看到 9,你需要限制打印的数量除了浮点格式之外还有一些方法。这将满足您的需要:

#include <stdio.h>
#include <string.h>
main()
{
double val=9;
char disp[21];
val=1.0/9.0;
val -= 0.0000000000000001;
printf("%20.19f\n", val);
val *=9;
printf("%20.19f\n", val);
sprintf(disp,"%20.19f",val);
printf("%.15s\n", disp);
}

这给出:

0.1111111111111110078
0.9999999999999991118
0.9999999999999

在我的机器上。

关于c - C语言中如何求重复小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35246888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com