C++ 获取双变量的小数部分并将其转换为字符数组?

C++ 获取双变量的小数部分并将其转换为字符数组?,c++,double,precision,C++,Double,Precision,我正在做一个小程序库,以便能够对非常大的数字进行运算,现在我正在尝试实现它们的小数部分 要生成所述数字,我需要一个双倍数字将其转换为字符数组。整数部分完成了,但小数部分却让我很为难 看看这个节目: double a = 123.123456; double dec = a - int(a); while (dec) { dec *= 10; cout << int(dec); // Here it just outputs the decimal digit fo

我正在做一个小程序库,以便能够对非常大的数字进行运算,现在我正在尝试实现它们的小数部分

要生成所述数字,我需要一个双倍数字将其转换为字符数组。整数部分完成了,但小数部分却让我很为难

看看这个节目:

double a = 123.123456;
double dec = a - int(a);

while (dec) {
    dec *= 10;
    cout << int(dec);  // Here it just outputs the decimal digit for the sake of simplicity.
    dec -= int(dec);
}
双a=123.123456;
双dec=a-整数(a);
而(12月){
dec*=10;

如果你想处理“真正的大数字”,而不是重新发明轮子,为什么不直接使用GMP呢?输出是可以的(双精度真正代表的是什么).二进制浮点数中唯一的精确小数是0.5、0.25、0.125…和combinations@JesperJuhl因为我精通C++,我想自己做事情。像这样的小问题对我来说是黄金。:,-浮点数学不精确。@DieterLücking这其实很有道理。如果你想处理“真正大的数字”,为什么不直接使用GMP,而不是重新发明轮子?输出是可以的(双精度表示什么).二进制浮点数中唯一的精确小数是0.5、0.25、0.125…和combinations@JesperJuhl因为我掌握C++,而且我想自己做事情。像这样的小问题对我来说是黄金。读这些(其他):浮点数学并不精确。