在C中,将格式为“293.0000”的字符串转换为浮动结果2.93的最佳方法是什么。
顺便说一句,也可以用printf删除小数,得到293的结果
答案 0 :(得分:0)
我假设您正在尝试将“293.00000”字符串转换为整数值293。
这不是最快的方式,你需要C库(不能在内核空间中使用它),但这是一个干净而直接的方法:
float tmp;
long result;
sscanf("293.00000", "%f", &tmp);
result = lrintf(tmp);
答案 1 :(得分:0)
char *myNum = "293.0000";
double myDouble = atof(myNum);
int myInt = (int)myDouble;
myDouble /= 100;
printf("double: (%.2f) %f, int: %d\n", myDouble, myDouble, myInt);
输出:
double:(2.93)2.930000,int:293
请注意,浮点类型的精度将超过2个小数点。当您输出它们时,您需要将其限制为您想要的。