C 如何评价数的级数

C 如何评价数的级数,c,C,我有一个类似-1,1.51,-2.525,3.456…等值的字符串 我需要将每个值(string)转换为float,并添加所有值以生成结果 同样,我需要将结果浮点转换为小数点后有两个数字的字符串 示例:-1+1.51-2.525+3.456=1.44。 提前感谢。查看函数,它非常适合做这样的事情。请注意,它解析一个浮点数,还返回一个指针,指向不属于该数字的第一个字符。以下代码将帮助您使用sscanf()函数拆分字符串 要显示小数点后有2个数字的浮点,请使用“%.2f” 使用strtok、strt

我有一个类似
-1,1.51,-2.525,3.456…
等值的字符串

我需要将每个值(
string
)转换为
float
,并添加所有值以生成结果

同样,我需要将结果浮点转换为小数点后有两个数字的字符串

示例:
-1+1.51-2.525+3.456=1.44。


提前感谢。

查看
函数,它非常适合做这样的事情。请注意,它解析一个浮点数,还返回一个指针,指向不属于该数字的第一个字符。

以下代码将帮助您使用
sscanf()
函数拆分字符串

要显示小数点后有2个数字的浮点,请使用“%.2f”


使用
strtok
strtod
printf
。显示您尝试过的代码。atoi(“2.5”)我使用此函数将其转换为整数,但不起作用。您确定是否“递归”使用
str
作为
anfssc()的源参数和目标参数
?@如果递归str buffer的使用导致问题(但我们必须与标准进行检查),我们可以使用另一个buffercode updtaed来支持在小数点后显示带2个数字的浮点point@JanHudec
%lf
表示双精度。
%f
可以用于浮点数:@MohamedKALLEL:是的,你是对的;printf和scanf在这里有所不同。OP说的是
float
,但
strtod
表示的是
double
。我想你指的是strof,很好。我通常使用
strod()
作为默认选择,在存储值时只需降低精度,但这当然不太清楚。谢谢。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

char str[256]="-1,1.51,-2.525,3.456";

int main()
{
    float x, sum=0; int g;
    while (g=sscanf(str,"%f,%s",&x,str))
    {

        printf("x=%f\r\n",x);
        sum+=x;
        if (g==1) break;
    }
    printf(" the sum is %.2f\r\n",sum);
}
linux$ gcc -o test test.c -lpthread
linux$ ./test
x=-1.000000
x=1.510000
x=-2.525000
x=3.456000
 the sum is 1.44