gpt4 book ai didi

将带有 double 的字符串转换为 double

转载 作者:行者123 更新时间:2023-12-02 00:20:40 26 4
gpt4 key购买 nike

我有字符串 temp[256] 并且里面有一个双数,例如 0.125 等等,一切都很顺利,虽然有时它会得到一个对于双数来说太大的数字,例如 0.88888888888888888888888888888888888888883,双数只包含 7 个数字,而不是全部。

我一直在使用 atof 将字符串转换为 double ,但我认为这里的问题在于 double ,因为它没有足够的空间容纳所有数字... .这是我写的:

char temp[256]; // Has the number inside it
double temp_num = 0; // need to put the string inside this variable
temp_num = atof(temp);
printf ("%f\n", temp_num);

只要数字不大于零后的 7 位数字,打印的输出就可以,但是如果它是像 0.881581818888888888888888888888888888888888888888143 这样的数字,它只会打印前 7 位数字,就像在这个例子中它会打印 8815818 而不是整个数字......所以我想我需要一个更大的变量?

最佳答案

Printf 的默认行为是在处理 double 或 float 时仅打印零后的 7 位数字,但是您可以更改该行为并控制打印零后打印的数字数量,如下所示

printf ("%.20f\n", temp_num);

这里是零后 20 位。

更多详情请引用:

  1. http://www.cplusplus.com/reference/clibrary/cstdio/printf/
  2. C 程序设计语言第二版。

关于将带有 double 的字符串转换为 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11061648/

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