簡體   English   中英

將帶小數的字符串轉換為整數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM