将带小数的字符串转换为整数

时间:2011-10-22 21:03:41

标签: c

在C中,将格式为“293.0000”的字符串转换为浮动结果2.93的最佳方法是什么。

顺便说一句,也可以用printf删除小数,得到293的结果

2 个答案:

答案 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个小数点。当您输出它们时,您需要将其限制为您想要的。