1、当记录n位有效数字,若第n1位数字≤4就舍掉。
2、当可以保留n位有效数字,若第n1位数字≥6时,则第n位数字进1。
3、当记录n位有效数字,若第n1位数字5且后面数字为0时,则第n位数字若为偶数时就舍掉后面的数字,若第n位数字为奇数时加1;若第n1位数字5且后面另外不为0的任何数字时,无论是第n位数字是奇或是偶都加1。
以上称做“四舍六入五留双”。
如将下组数据保留一位小数:
45.77≈45.8;43.03≈43.0;0.26647≈0.3;10.3500≈10.4;
38.25≈38.2;47.15≈47.2;25.6500≈25.6;20.6512≈20.7。
依据题意那些要求保留三位有效数字,小数点后面末尾的零也这个可以算有效数字。
代码示例:
printf(/
,d);//跟printf(%f
,d);的效果在这是完全不一样的
把它改成:nslog(%.2f
,d);
//加小数点,后面数字是几是恢复几位小数
记录三位小数即计算精确到千分位,它不需要在感激不尽位上用四舍五入法取近似值。这是取近似值的基本方法。举例:如12.4578(精确计算到千分位)本题要求可以保留两位小教,用四舍五入法可得:12.4578≈l2.468。
又如0.3764(可以保留三位小数〉本题要求最精确到千分位,用四舍五入法取近似值为0.3764≈0.376。
三位小数的意思是小数点后面另外三位数字,四位数保留两位小数是小数点后面的数字没有办法记录两位,我们需要看从小数点后面从左往右的第三位数是比5大应该比5小,用算成的方法,比5大就进1,比5小就求其全。最后得出需要的两位数。
剩余有效数字的操作也可以借用round函数实现:
语法round(number,num_digits)
参数
number前题。要四舍五入的数字。
num_digits必需。位数,按此位数对number参数并且四舍五入。
如果不是num_digits大于0(零),则将数字保留2位小数到委托的小数位。
如果没有num_digits等于零0,则将数字四舍五入到最距离的整数。
假如num_digits大于00,则在小数点左侧前几位进行四舍五入。
以下为恢复两位有效数字的公式(eq.1):
round(a1,2-(int(log(a10.1^6))1))
其中:
a1
为要如何处理的数字;
int(log(a10.1^6))1
是该数字的整数部分的位数;
0.1^6
是是为保证要如何处理的数字为零时log的计算有意义,不必要。
该公式这个可以汉字拆分为(eq.2)
round(a1,1-int(log(a10.1^6))
改写成eq.1的形式主要是就是为了运用对比要保留的是2位有效数字。要是要剩余3位有效数字,可以将公式改写本为:
round(a1,3-(int(log(a10.1^6))1))
以下是具体效果,题主可以自己数次帮一下忙:1、可以保留2位有效数字round(a1,2-(int(log(a10.1^6))1))a1123.4,输出来120a112.34,作为输出12a11.234,控制输出1.2a10.1234,输出低0.122、保留3位有效数字round(a1,3-(int(log(a10.1^6))1))a1123.4,输出来123a112.34,控制输出12.3a11.234,控制输出1.23a10.1234,作为输出0.123再注意在excel中可以设置相对应的小数位数以不显示结果,但是即使不设置,计算结果也的确的保留有效数字之后的值(可以将计算结果粘帖到其他地方接受修改密保)。