C++ 输出超过18位整数

C++ 输出超过18位整数数由float过来 不必计算 只需输出给出详细程序
2025-06-27 21:16:19
推荐回答(6个)
回答1:

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

#include
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; // 精确
}

回答2:

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

回答3:

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

int main(void)
{
char str[25];
double num;
int sig = 5; /* significant digits */

/* a regular number */
num = 9.876;
gcvt(num, sig, str);
printf("string = %s\n", str);

/* a negative number */
num = -123.4567;
gcvt(num, sig, str);
printf("string = %s\n", str);

/* scientific notation */
num = 0.678e5;
gcvt(num, sig, str);
printf("string = %s\n", str);

return(0);
}

回答4:

这是算N!的,把数组的大小改成多少就可以最大输出多少位

#include
main()
{
int date[500]={0};
int dight;
int i,j,r,k;
int n;
for(i=1;i<100+1;i++)
date[i]=0;

date[0]=1;
date[1]=1 ;
dight=1;
printf("input number:");
scanf("%d",&n);

for(i=1;i{
for(j=1;jdate[j]*=i;
for(j=1;j{
if(date[j]>10)
{
for(r=1;r{
if(date[dight]>10)
dight++;
date[r+1]+=date[r]/10;
date[r]=date[r]%10 ;
}
}
}

if(i==n)//////////////这里是输出
{
printf("%d! = ",i);
for(k=dight;k>0;k--)
printf("%d",date[k]);
printf("\n\n");
}} }

回答5:

这是算N!的,把数组的大小改成多少就可以最大输出多少位
#include
main()
{
int
date[500]={0};
int
dight;
int
i,j,r,k;
int
n;
for(i=1;i<100+1;i++)
date[i]=0;
date[0]=1;
date[1]=1
;
dight=1;
printf("input
number:");
scanf("%d",&n);
for(i=1;i////////这里是数组进位的算法
{
for(j=1;jdate[j]*=i;
for(j=1;j{
if(date[j]>10)
{
for(r=1;r{
if(date[dight]>10)
dight++;
date[r+1]+=date[r]/10;
date[r]=date[r]%10
;
}
}
}
if(i==n)//////////////这里是输出
{
printf("%d!
=
",i);
for(k=dight;k>0;k--)
printf("%d",date[k]);
printf("\n\n");
}}
}

回答6:

<<
setprecision(n)
//讲浮点精度设置为n(要#include

比如:
#include
#include
using
namespace
std;
int
main()
{
........
cout<}//输出的是a,精确位数是10