gpt4 book ai didi

c - 如何在 C 中格式化小数?

转载 作者:太空狗 更新时间:2023-10-29 17:19:09 26 4
gpt4 key购买 nike

这是我的打印语句:

printf("%d     %f\n",kPower, raisePower); 

这是我的输出:

-4     0.000100
-3 0.001000
-2 0.010000
-1 0.100000
0 1.000000
1 10.000000
2 100.000000
3 1000.000000
4 10000.000000

我希望它打印成这样:

enter image description here

更新

所以我把我的积极值(value)观排成一行:

-4            0.0
-3 0.0
-2 0.0
-1 0.1
0 1.0
1 10.0
2 100.0
3 1000.0
4 10000.0

到目前为止,这是我的新代码:

printf("%d     %10.1f\n",kPower, raisePower);

我不知道,我是否应该制作一个 for 循环以不同的格式打印每个结果(阳性结果与阴性结果)?

最佳答案

#include <stdio.h>

char *get_number_formatted(double f)
{
static char buf[128]; // this function is not thread-safe
int i, j;

i = snprintf(buf, 128, "%20.10f", f) - 2;

for (j = i - 8; i > j; --i)
if (buf[i] != '0')
break;

buf[i + 1] = '\0';
return buf;
}

int main(void)
{
int i;
for (i = -4; i < 5; ++i)
printf("%5d %s\n", i, get_number_formatted(pow(10.0, i)));
return 0;
}

http://ideone.com/KBiSu0

输出:

   -4         0.0001
-3 0.001
-2 0.01
-1 0.1
0 1.0
1 10.0
2 100.0
3 1000.0
4 10000.0

printf() 无法打印可变长度的十进制数字,所以基本上我所做的是将格式化的数字打印到缓冲区中,然后删除超出的零。

关于c - 如何在 C 中格式化小数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29912401/

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