当前位置:首页 » 编程语言 » c语言让数字更精准
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言让数字更精准

发布时间: 2022-07-08 10:58:09

❶ 如何保证c语言中输入一个极大的数时输出的准确度。求对例子的详细解释、解决办法。

如用 MS VC++ 6.0 编译器,数值未超过 8字节 整型时,可改用 _int64 型。
#include<stdio.h>
#include<stdlib.h>
main(){
_int64 a,b,c;
printf("input a b\n");
scanf("%I64d %I64d", &a,&b);
printf("%I64d\n", a+b);

printf("input c\n");
scanf("%I64d",&c);
if( c<=2147000000 && c>=-2147000000)
printf("%I64d %I64d\n",c/2+1,c-1-c/2);
return 0;
}

---------
超出此范围,要用大数运算,(可在网络知道里找 大数四则运算 程序),输入 用 字符串 形式。

❷ 在C语言中,要想将一个数精确到小数点后几位,应该怎样做。

如果是输出的话,可以用:
printf("%.4f",3.1415926);

❸ C语言中,哪一种数据类型最精确,可以精确到小数点后40位左右的有没有

没有那么大的数据类型,但是方法是变化的。看你的程序想要做什么。
如果是计算圆面积的话,完全可以将圆周率设置为常量之类的。
简单的举例:#define PI 3.1415926

如果是使用公式计算圆周率,可以定义一个数组,然后将算出来的数字放进去。
举例:int pi[35];
然后将数字放进去。可能需要将数组初始化以免出现不必要的问题。

❹ c语言如何精确小数点后指定位数

可以在输出时,指定小数点后的有效位数,实现精确到若干位的效果。
要精确到小数点后若干位,则数据类型为浮点型,可能为单精度(float)或双精度(double)。
在C语言中,使用格式化输出函数printf来实现输出。
输出格式为
%.NF
1 %为格式化字符串的引导字符。
2 .N表示指定显示N位小数。
3 F为类型字符,对于float, F值为f, 对于double,F值为lf。

举例:
1 要输出float a=1.23234; 保留3位小数的写法为:
printf("%.3f",a);
2 输出double b=123.345232; 保留4为小数,写法为:
printf("%.4lf",b);

❺ C语言输入小数,精确到小数点后10位

把scanf("%15.10f",&x);应该改成scanf("%15lf",&x);这样就好了。

代码中x是double型的,在输入数据的时候是不允许使用%f的,double型的数据输入必须使用%lf

还有,scanf("%15.10f",&x);15.10这个是不允许出现的,在数据输入的时候只能指定输入数据的总长度,不能指定小数点后的长度。

(5)c语言让数字更精准扩展阅读:

scanf(函数原型

intscanf(constchar*restrictformat,...);

函数 scanf() 是从标准输入流stdin(标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。

函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的指针所指位置。每一个指针要求非空,并且与字符串中的格式符一一顺次对应。

❻ C语言如何想精确几位小数就精确几位 假设输入数n,就精确n位这么弄

以输出π值为例,给出算法:
#include <stdio.h>
#define PI 3.1415926535897932384
void main( )
{
char str[81]="PI=%10.00f\n";
int n;
printf("input n(1-15):");
scanf("%d",&n);
str[7]='0'+n/10;
str[8]='0'+n%10;
printf(str,PI);
}
这段程序能输出float的全部16为精度。

❼ 怎么用C语言实现精确到小数点后N位如题2-5

重写了程序:

#include<stdio.h>

int main()

{ int a,b,c,i,n=0,k[30];

scanf("%d%d%d",&a,&b,&c);

do

{ printf("Case %d: ",++n);

for(i=0; i<=c; i++)

{ k[i]=a/b;

a=a%b*10;

}

if(a/b>4)k[c]++;

for(i=c; i>0&&k[i]>9; k[i]++)k[i--]-=10;

for(i=0; i<=c; i++)

{ if(i==1)putchar('.');

printf("%d",k[i]);

}

putchar(' ');

scanf("%d%d%d",&a,&b,&c);

}

while(a||b||c);

return 0;

}

❽ C语言中怎样尽量多得输出数值准确位数

printf("%.
10f
\n",6./3);
干嘛要用%g啊,用f就可以了啊,右边可以像上面那样,也可以
printf("%.10f\n",6*1.0/3);
主要是注意
类型转换
就可以了,最后再以
浮点型
打印出来,
比如printf("%5.6f\n",6*1.0/3);
就表示最后打印一个
浮点数
,左边有效数字为5伟,右边有效数字为6伟,想要精度,自己改一下就可以了

❾ 如何提高c语言精确度

1.规定明确的数据类型(int、double、float)

2.用
Math
里的函数舍去或补齐

3.麻烦一点、设定数据偏移量,在舍去或补齐编译量范围内的数据

比如
偏移量为
0.001

if
(0.800000011 -
0.800 <
0.001
*
5)
{

0.800000011 =
0.800;

}

else
{

0.800000011 =
0.800
+
0.001;

}

至于
0.800
这个数是怎么取的
方法有很多

可以截取字符串,可以计算,可以用Math里的函数

计算的方法

0.800000011 -
0.800000011 %
0.001

计算过程中一定要明确数据类型,数据类型越明确误差越小

❿ c语言如何让输出结果精确到两位小数

可以在输出的时候限制小数点位数。
1、当输出单精度浮点型float变量f时,可以用printf("%.2f",
f);来使输出结果保留两位有效数字。其中.2就是代表保留两位,如果要保留三位就是%.3f。用%.0f就是只输出整数。
2、如果是双精度浮点数double,就需要用%.2lf来使输出结果保留2位小数。