#include <iostream>

using namespace std;
using LL = long long int;

#define debug(x) cout<<#x<<": "<<(x)<<endl;
#define deOut(x) cout<<#x<<": "<<(x)<<" ";
#define de15lf(x) {cout<<#x<<": "; printf("%.15lf\n",x);}

int main(int argc, char* argv[] )
{
double a = 42478.95;
//double a = 0.98765432123456789;
de15lf(a)
long long x = 1;
for (int i = 1; i <= 15; i++) {

LL la = a * x;
deOut(i)debug(la)
x *= 10;
}
return 0;
}

C++ 浮点数精度不足的处理_ios