我正在研究一种贪婪算法,在将float转换为int时遇到错误
#include <cs50.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
float n;
//checking if given input is valid or not
do
{
n = get_float();
}
while(n<0);
//converting dollar into cents
float coins = n * 100;
int x = atoi(coins) //getting error here???
....
}
答案 0 :(得分:2)
atoi
函数用于将字符串转换为整数。它期望char *
作为指向字符串的参数。
您在这里不需要转换功能。您可以将float
的值直接分配给int
,任何小数部分都会被截断。
int x = coins;
但是请注意,如果coins
的截断值超出int
的范围,则可以调用undefined behavior。
答案 1 :(得分:0)
atoi()
将ascii转换为整数,而float
不是int
。检查头文件中的函数定义。我建议改为使用atof()
,或者也许使用strtod()
。