给定浮点数7.64,将其转换为字符串而不使用任何内置函数/库。 这个问题在java中很容易。由于+运算符重载的字符串。我们可以做浮点数到字符串转换中的错误
class Float2String
{
public static void main(String[] args)
{
float f=7.64f;
String result;
result=""+f;
System.out.println(result);
}
}
但在C,我尝试这样做..
int main()
{
float f =2.44;
int i, j = 0;
i = (int) f;
f = f - i;
while(f > 0) {
f *= 10;
j = (j*10) + (int) f;
f = f - (int) f;
}
//now make itoa() to convert i and j to strings .
return 0;
}
这里的问题是,浮点错误开始潜入如while循环去和j留下不正确的小数部分。 例如在上述情况下,f的值变化如
那么如何在c或C++中执行此问题。
请记住,即使是字符串+运营商正在使用一个内置的函数/库(StringBuilder.append)1.0的区别,所以你原来的目标有点没有意义。 –
我在寻求另一种解决方案@KevinWorkman –
呃,我明白了。我唯一的观点是,你的声明可能在不使用内置函数的情况下在Java中执行此操作是不正确的。 –