我有一个类似-1,1.51,-2.525,3.456...
etc 值的字符串。
我需要将每个值(string
)转换为float
并添加所有值以产生结果。
我再次需要将结果浮点数转换为字符串,小数点后有两个数字。
例子 :-1+1.51-2.525+3.456 = 1.44.
提前致谢。
我有一个类似-1,1.51,-2.525,3.456...
etc 值的字符串。
我需要将每个值(string
)转换为float
并添加所有值以产生结果。
我再次需要将结果浮点数转换为字符串,小数点后有两个数字。
例子 :-1+1.51-2.525+3.456 = 1.44.
提前致谢。
查找strtof()
功能,它非常适合做这样的事情。请注意,它解析一个浮点数,并返回一个指向第一个字符的指针,该字符不被视为数字的一部分。
以下代码将帮助您使用sscanf()
函数拆分字符串
要在小数点后显示 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