c语言FLOAT到底可精确到小数点几位,不是说7位吗,那程序中#define PI ((float)3.141592654f) 这么多位,

c语言FLOAT到底可精确到小数点几位,不是说7位吗,那程序中#define PI ((float)3.141592654f) 这么多位,到底是怎么回事

float类型是可以精确到16位小数的,只是默认情况下,只输出6位小数.
可以在输出的时候, 使用这种格式: %.16f 输出16位小数(当然也可以写比16大的数,只是输出时16位以后的都是0而已)
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-06
要看在什么程序的吧,C++有32位,而T……的只有16位
可能一个位是8个字节吧,好多个二进制位
第2个回答  2013-04-06
用sizeof可以看出内存字节数的, double有十六位有效数字,float只有六位。
第3个回答  2013-04-06
显示默认是6位。
第4个回答  2013-04-06
你在这里是强转为float类型了,它会截断后面的几位

c语言FLOAT到底可精确到小数点几位,不是说7位吗,那程序中#define...
float类型是可以精确到16位小数的,只是默认情况下,只输出6位小数.可以在输出的时候, 使用这种格式: %.16f 输出16位小数(当然也可以写比16大的数,只是输出时16位以后的都是0而已)

C语言编程序时怎么控制浮点型输出的小数点精确到几位
void main(){ float a=345.234678;printf("%.3f\\n", a) ;} 其中%.3f里的3就表示输出精确到小数点后3位。所以可参考的形式是printf("%m.nf",p);m.nf,指定输出的数据共占m列,其中有n位是小数。如果数值长度小于m,则左端补空格,若数值长度大于m,则按实际位数输出。

c++中这道题为什么保留小数点后六位?而不是314.15?
在格式化输出中,%f默认输出小数点后六位

c语言中#define PI 3.14什么意思
宏定义一个常量PI,PI的值为3.14 define是宏定义的意思,宏定义是用宏名来表示一个字符串,在宏展开时又以该字符串取代宏名,这只是一种简单的代换,字符串中可以含任何字符,可以是常数,也可以是表达式,预处理程序对它不作任何检查。如有错误,只能在编译已被宏展开后的源程序时发现。

C语言,float x=3.14,计算x*x(3.14*3.14=9.8596),实际计算出来为什么等于9...
float是小数加止整数后6位是准确的,而double则会更才一些 include<stdio.h> include<stdlib.h> define PI 3.1415 void main(){ float *p;int n;scanf("%d",&n);p=(float *)malloc(sizeof(float)*n);for(int i=0;i<n;i++)scanf("%f",&p[i]);for(i=0;i<n;i++)printf("%...

c语言#define PI 3.1415926用float行吗
define PI 3.1415926 \/\/1 表示定义符号常量PI,其等价于3.1415926,在编译阶段,PI被编译程序换成3.1415926,3.1415926在C语言中被当作double型。\/\/2 本编译预处理语句没有涉及float等数据类型。若涉及,则float表示的精度是7位有效数字,而double型表示的有效数字是15到16位,楼主可根据实际情况做出...

c语言中半径周长用什么数据类型比较合适?
在C语言中,表示半径和周长比较合适的数据类型是`float`或者`double`。这两种数据类型都可以用来存储浮点数(即小数),它们之间的主要区别在于精度: `float`通常有7位有效数字,而 `double` 通常有15-17位有效数字。选择哪种取决于你对计算结果精度的需求。如果需要更高的精确性,请使用 `double`; ...

...#define PI 3.14 viod main() { float r; double L,S1,S2,V; pri...
include<stdio.h> define PI 3.14 void main(){ float r;double L,S1,S2,V;printf("请输入所要求的圆的半径r\\n");scanf("%f",&r);L=PI*2*r;S1=PI*r*r;S2=PI*4*r*r;V=(4.0\/3)*r*r*r*PI;printf("圆的周长L=%0.2lf",L);printf("\\n圆的面积S1=%0.2lf",S1);pr...

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为精度。

.在源程序中有宏定义:#define PI 3.14,则若不想使该宏定义影响到程序的...
undefine PI 表示消除宏定义的作用域

相似回答