C++ 输出超过18位整数

来源:百度知道 编辑:UC知道 时间:2024/05/07 06:54:49
C++ 输出超过18位整数
数由float过来 不必计算 只需输出
给出详细程序

用float或double转成整型都有精度损失,float精确6位,double 16位,有的编译器可能利用了80位的long double,那就不知道了。我想你可以直接使用long long int

#include <iostream>
using namespace std;

int main()
{
float a = 3.14159265358979323e+18;
double b = 3.14159265358979323e+18;
long long c3 = 314159265358979323;

long long c1 = a;
long long c2 = b;
cout << c1 << endl; // float 精确位6
cout << c2 << endl; // doble 精确位16
cout << c3 << endl; // 精确
}

<< setprecision(n) //讲浮点精度设置为n(要#include <iomanip>)
比如:
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
........
cout<<setprecision(10)<<a;
}//输出的是a,精确位数是10

先转化成字符串,然后输出
这是函数的原型
char *_gcvt( double value , int digits , char * buffer );
具体用法请查看MSDN
#include <stdlib.h>
#include <stdio.h>

int main(vo