[英]convert string with decimals to integer
在C語言中,什么是將格式為“ 293.0000”的字符串轉換為浮點結果2.93的最佳方法?
順便說一句,也有可能用printf刪除小數並得到293的結果。
我假設您正在嘗試將“ 293.00000”字符串轉換為整數值293。
這不是最快的方法,您需要C庫(不能在內核空間中使用它),但這是一種干凈直接的方法:
float tmp;
long result;
sscanf("293.00000", "%f", &tmp);
result = lrintf(tmp);
char *myNum = "293.0000";
double myDouble = atof(myNum);
int myInt = (int)myDouble;
myDouble /= 100;
printf("double: (%.2f) %f, int: %d\n", myDouble, myDouble, myInt);
輸出:
雙:(2.93)2.930000,int:293
請注意,浮點類型的精度將超過2個小數點。 輸出它們時,您需要將其限制為所需。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.