#include<iostream>
#include <iomanip>
using namespace std;
int main()
{
double p, n = 0, m = 0, i = 0, j = -1, x, q;
double sum = 0;
int z = 0;
cin >> p;
z = (int)p;
x = p - z;
while (z > 0)
{
m = z % 2;
z = z / 2;
sum = sum + m * pow(10, i);
//n++;//记录整数部分位数
i++;
}
while (x > 0.000000001)//小数点后的精度,整数部分混为一体考虑
{
q = (int)(x * 2);
x = x * 2 - q;
sum += q * pow(10, j);
j--;
n++;//总的位数
}
if (n > 16)//double的有效数位16~17位
n = 16;
//cout.precision(n);//设置输出精度
cout << "二进制为:" << setprecision(n) << sum << endl;
}
如果输入:68.3125
输出为:
如何让此处输出不表示为指数形式