如何评估一系列数字

时间:2012-11-27 09:00:49

标签: c

我有一个像-1,1.51,-2.525,3.456...等值的字符串。

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

我需要将结果浮点数转换为小数点后两位数的字符串。

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

提前致谢。

2 个答案:

答案 0 :(得分:0)

查找strtof()函数,它非常适合这样做。请注意,它会解析一个浮点数,并返回一个指向第一个字符而不是的指针,该字符被视为该数字的一部分。

答案 1 :(得分:0)

以下代码将帮助您使用sscanf()函数

拆分字符串

使用小数点后{2}显示带有2个数字的浮点数"%.2f"

#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