給定浮點數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中執行此操作是不正確的。 –