发布网友 发布时间:2024-10-18 15:26
共2个回答
热心网友 时间:2024-11-07 02:51
你所说的有效数字是指?
如果是数据的值,不管是变量还是常量,
他的值都是一个固定的数,
这一点和数学中是一样的,
不过存储他们的量(变量或常量)是基于硬件的(存储器),
而现阶段常用的内存条,在程序设计的过程中,
可以抽象为一个线性数组,
并且大小是有限的,
而且量的取值范围是确定的。
所以除了大小限度以外,
和数学中的定义几乎没有其余区别,
如果非要再多加一点不同,
那就是数学中的数可以一直加,
知道加到无限大,
但是计算机中的量只能表示一个数的范围,
所以不能到无限大,
就是所谓的溢出。
相对于整数,实数(小数)就有的意思了,
C语言采用浮点数(计算机系统常用浮点数和定点数来表示实数)来表示实数。
实数在计算机内的存储和整形有些不同。
整形数据的存储就是他的二进制数据的顺序组合,
实数的存储是用“科学计数法”来表示的,
用阶码,尾码等表示,比浮点数略微复杂一点。
在实际应用中,
整数会发生“截断”,也叫“截短”或“溢出”,
这是整形数据内部处理时发生的。
实数在有的时候会发生“截短”,
就是“四舍五入”,
指实数在不同数据类型之间转换时发生“精度丢失”的情况
满意请采纳,不满意请追问
热心网友 时间:2024-11-07 02:56
有效数字位数是小数点以后的数字位数,而电脑输出的数字位数决定于定义变量的模式,并一般采用“四舍五入”的方法。 如 int i; printf("Enter a value for i...\n"); scanf("%d", &i); 键盘输入0.333,储存到变量i里的数是0(约掉了) 如果改成: double i; 那就会储存0.333000 在输出数值的时候可以先设定有效数值位数: double i; printf("Enter a value for i...\n"); scanf("%d", &i); printf("\ni = %.4lf", i); 在输出的时候在电脑上会输出“i = 0.3330” .在处理过程中不会当做有效数字位数来处理。