2012-07-12 338 views
-3

我需要将3个字符(“123”)的char *字符串转换为带有两个小数位(1.23)的浮点数。C语言:将3个字符(“123”)转换为%.2f(1.23)

+0

这个转换是否是任意的?或者它是由3个数字组成的任意3个字符的字符串,将被转换为像x.xx这样的浮点数? – 2012-07-12 20:17:34

+3

StackOverflow不是您的研究助理。 – 2012-07-12 20:18:03

+0

不一定是三开始,但我将长度为1,2,3,4或5个字符的字符串转换为货币格式($ 1.23) – user1486548 2012-07-12 20:20:05

回答

5

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

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

为什么atof()? atoi()工作在我的情况,但atof()没有 – user1486548 2012-07-12 20:26:41

+3

@比尔尼尔森 - 更喜欢'atrt'上的'strtol';更喜欢'双'到'浮动'。 – 2012-07-12 22:13:14

相关问题