【问题标题】:C Language: convert 3 char string ("123") to %.2f (1.23)C 语言:将 3 个字符字符串 ("123") 转换为 %.2f (1.23)
【发布时间】:2012-07-12 20:13:21
【问题描述】:

我需要将 3 个字符 ("123") 的 char * 字符串转换为具有两位小数的浮点数 (1.23)。

【问题讨论】:

  • 这种转换是任意的吗?还是任何 3 个字符串,由 3 个数字组成,将被转换为浮点数,如 x.xx?
  • StackOverflow 不是你的研究助理。
  • 不必从三个开始,但我正在将长度为 1、2、3、4 或 5 个字符的字符串转换为货币格式($ 1.23)
  • 我尝试从指针中减去“0”,然后将其转换为浮点数,除以 100,然后使用 %.2f 进行 printf
  • @user1486548:你能贴出 C 代码吗?

标签: c string pointers floating-point double


【解决方案1】:

您可以使用 atoi,它将 ASCII 转换为整数。然后将该 int 转换为 float。

int num = atoi(string);
float f = num/100.0f;
printf ("%.2f", f);

【讨论】:

  • @Bill Nelson - 比atoi 更喜欢strtol;更喜欢double 而不是float
猜你喜欢
  • 2021-04-16
  • 2012-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-20
  • 1970-01-01
  • 1970-01-01
  • 2011-02-03
相关资源
最近更新 更多