四舍六入五成双的算法

合集下载

四舍六入五留双规则的具体方法

四舍六入五留双规则的具体方法

四舍六入五留双规则的具体方法之杨若古兰创作当尾数小于或等于4时,直接将尾数舍去例如将以下数字全部修约到两位小数,结果为:10.2731——10.2718.5049——18.5016.4005——16.4027.1829——27.18当尾数大于或等于6时将尾数舍去向前一名进位例如将以下数字全部修约到两位小数,结果为:16.7777——16.7810.29501——10.3021.0191——21.02(三)当尾数为5,而尾数后面的数字均为0时,应看尾数“5”的前一名:若前一名数字此时为奇数,就应向前进一名;若前一名数字此时为偶数,则应将尾数舍去.数字“0”在此时应被视为偶数.例如将以下数字全部修约到两位小数,结果为:12.6450——12.6418.2750——18.2812.7350——12.7421.845000——21.84(四)当尾数为5,而尾数“5”的后面还有任何不是0的数字时,不管前一名在此时为奇数还是偶数,也不管“5”后面不为0的数字在哪一名上,都应向前进一名.例如将以下数字全部修约到两位小数,结果为:12.73507——12.7421.84502——21.8512.64501——12.6518.27509——18.2838.305000001——38.31按照四舍六入五留双规则进行数字修约时,也应像四舍五入规则那样,一次性修约到指定的位数,不成以进行数次修约,否则得到的结果也有可能是错误的.例如将数字10.2749945001修约到两位小数时,应一步到位:10.2749945001——10.27(准确).如果按照四舍六入五留双规则分步修约将得到错误结果:10.2749945001——10.274995——10.275——10.28(错误).。

四舍六入五单进规则

四舍六入五单进规则

数值修约规则四舍六入五留双规则四舍六入五留双规则的具体方法是:(一)当尾数小于或等于4时,直接将尾数舍去。

例如将下列数字全部修约为四位有效数字,结果为:0.53664—0.5366 10.2731—10.2718.5049—18.50 0.58344—0.583416.4005—16.40 27.1829—27.18(二)当尾数大于或等于6时,将尾数舍去并向前一位进位。

例如将下列数字全部修约为四位有效数字,结果为:0.53666—0.5367 8.3176—8.31816.7777—16.78 0.58387—0.583910.29501—10.30 21.0191—21.02(三)当尾数为5,而尾数后面的数字均为0时,应看尾数“5”的前一位:若前一位数字此时为奇数,就应向前进一位;若前一位数字此时为偶数,则应将尾数舍去。

数字“0”在此时应被视为偶数。

例如将下列数字全部修约为四位有效数字,结果为:0.153050—0.1530 12.6450—12.6418.2750—18.28 0.153750—0.153812.7350—12.74 21.845000—21.84(四)当尾数为5,而尾数“5”的后面还有任何不是0的数字时,无论前一位在此时为奇数还是偶数,也无论“5”后面不为0的数字在哪一位上,都应向前进一位。

例如将下列数字全部修约为四位有效数字,结果为:0.326552—0.3266 12.73507—12.7421.84502—21.85 12.64501—12.6518.27509—18.28 38.305000001—38.31按照四舍六入五留双规则进行数字修约时,也应像四舍五入规则那样,一次性修约到指定的位数,不可以进行数次修约,否则得到的结果也有可能是错误的。

例如将数字10.2749945001修约为四位有效数字时,应一步到位:10.2749945001—10.27(正确)。

如果按照四舍六入五留双规则分步修约将得到错误结果:10.2749945001—10.274995—10.275—10.28(错误)。

四舍六入五成双

四舍六入五成双

四舍六入五成双
四舍六入五成双
近日一个偶然的机会看到Javascript的Round函数的一些问题,发现它计算有效数字用的不是四舍五入原则,而是四舍六入五成双原则。

后来到网上查了才知道欧洲的金融业基本都是使用这个原则的,我们国家的科学界也推荐了这个原则,但是没能流行开来,据说这个原则能在大数据量计算中减少误差。

我国科学技术委员会正式颁布的《数字修约规则》,通常称为“四舍六入五成双”法则。

四舍六入五考虑,即当尾数≤4时舍去,尾数为6时进位。

当尾数4舍为5时,则应是末位数是奇数还是偶数,5前为偶数应将5舍去,5前为奇数应将5进位。

这一法则的具体运用如下:
A. 将28.175和28.165处理成4位有效数字,则分别为28.18和28.16。

B. 若被舍弃的第一位数字大于5,则其前一位数字加1,例如
28.2645处理成3为有效数字时,其被舍去的第一位数字为6,大于5,则有效数字应为28.3。

C. 若被舍其的第一位数字等于5,而其后数字全部为零时,则是被保留末位数字为奇数或偶数(零视为偶),而定进或舍,末位数是奇数时进1,末位数为偶数时还进1,例如28.350、28.250、
28.050处理成3位有效数字时,分别为28.4、28.2、28.0。

D. 若被舍弃的第一位数字为5,而其后的数字并非全部为零时,则进1,例如28.2501,只取3位有效数字时,成为28.3。

E. 若被舍弃的数字包括几位数字时,不得对该数字进行连续修约,而应根据以上各条作一次处理。

如2.154546 ,只取3位有效数字时,应为 2.15,二不得按下法连续修约为 2.16:2.154546→2.15455→2.1546→2.155→2.16。

四舍六入五成双是什么意思

四舍六入五成双是什么意思

四舍六入五成双是什么意思四舍六入五成双是什么意思?其实“四舍”和“六入”都只是一种取数方法,不能单独使用。

四舍就是把要舍去的数从左边向右数第三位数,除以二;再按照余数从小到大的顺序,从高位舍到低位。

而“六入”则是把要入的数字先按照除数的小,依次递增,然后将商四舍;最后余下的数按照得数的高位数的数字来入位。

举几个简单的例子:四舍六入五成双有哪些常用口诀?这句话一般在计算四舍五入时使用。

在计算“十万八千”之类的大数目时,一定要记住这条口诀,因为“万”在它前面添加一个零或者一个数字,要得到原数目的千分之一,都是不容易的事情。

还有就是在需要求出百分率时也会用到。

比如说,20%要化作0.2;80%就变成了0.8等。

在我们的生活中,尤其是做财务工作的人员更应该牢牢地掌握好这个口诀。

那么这里就存在着一个问题了,如果在计算“0.02”时,结果却是零点几呢?要知道,百分号前面的零越多,所表示的精确程度就越高,假设你输入的结果是0.2,那么0.12(即10的12次方)就是正确答案了。

反过来说,要想输入0.03,恐怕就没那么幸运了!很明显,输入零点几,关键就在于“0.02”两字,理解了“四舍”与“六入”,也就明白了为何需要用到“五成双”了。

比如说,我们的手机号码在一串中必须对齐,但又难免有几个不同的相邻号码,若干年以后有人询问此号码值多少钱,根据他的指引我们便可以轻松找到自己当初购买的价格,而且不管是谁来查询都是一样的结果。

现在,很多公司采用最新的“智能卡手机销售模式”,顾客持卡来电时,由系统检测手机号码,并在网络中搜索到对应的手机号,在拨通电话后根据输入的号码将联系信息传送至数据库中,形成了“四舍”、“五入”、“六成双”的规律。

以上两个例子可以看出,平时常见的非整数的大额支付账户的金额记录,经常利用到四舍五入技术,在银行业特别盛行,甚至已被写进专门教材。

虽然,我国目前已发行的支票不能再修改起始数字了,但是在日常生活中仍广泛使用着。

四舍六入五成双的计算方法

四舍六入五成双的计算方法

四舍六入五成双的计算方法
宝子,今天咱来唠唠这个“四舍六入五成双”的计算方法。

你看啊,平常咱们老说四舍五入,这个“四舍六入五成双”可有点不一样的小脾气呢。

先说这个“四舍”,就和咱们平常的四舍五入里的四舍差不多啦。

要是一个数要保留到某一位,这一位后面的数字小于等于4呢,那就直接舍掉。

比如说3.42,要保留到整数位,后面的0.42里4是小于5的,那就舍掉,结果就是3啦。

再讲讲“六入”。

要是这一位后面的数字大于等于6呢,就往前进一位。

就像3.61,保留到整数位,0.61里6大于5,那就进一位,结果就是4喽。

最有趣的就是这个“五成双”啦。

如果这一位后面的数字是5,就不是简单的进一位了哦。

如果这个5后面没有其他数字了,或者说5后面的数字都是0,那就要看前面的数字是奇数还是偶数。

要是前面的数字是奇数呢,就进一位让它变成偶数;要是前面的数字是偶数,那就直接舍掉这个5。

比如说2.5,保留到整数位,2是偶数,那就舍掉0.5,结果就是2;要是3.5,3是奇数,那就进一位,结果就是4。

这个计算方法在一些比较精确的统计或者科学计算里可有用了呢。

它能让数据的处理更加合理,减少一些因为简单四舍五入带来的小偏差。

宝子,你可别小瞧它,虽然感觉有点复杂,但是一旦你掌握了,就会觉得还挺好玩的呢。

它就像是一个有点小个性的朋友,有自己独特的规则。

不像普通的四舍五入那么直白,但是却更加细腻地处理数字。

下次你要是遇到需要精确处理数字的时候,不妨试试这个“四舍六入五成双”的方法呀。

数字修约规则-----四舍五入和四舍六入五留双规则

数字修约规则-----四舍五入和四舍六入五留双规则

数字修约规矩如今被普遍应用的数字修约规矩重要有四舍五入规矩和四舍六入五留双规矩.[编辑] 四舍五入规矩四舍五入规矩是人们习惯采取的一种数字修约规矩.四舍五入规矩的具体应用办法是:在须要保存有用数字的位次后一位,逢五就进,逢四就舍.千分位(小数点后第三位),因小数点后第四位数字为5,按照此规矩应向前一位进一,所以成果为2.188.同理,将下列数字全体修约为四位有用数字,成果为:2按照四舍五入规矩进行数字修约时,应一次修约到指定的位数,不成以进行数次修约,不然将有可能得到错误的成果.例如将数字15.4565修约为两位有用数字时,应一步到位:15.4565——15(准确).假如分步修约将得到错误的成果:15.4565——15.457——15.46——15.5——16(错误).四舍五入修约规矩,逢五就进,必定会造成成果的体系偏高,误差偏大,为了防止如许的状态消失,尽量减小因修约而产生的误差,在某些时刻须要应用四舍六入五留双的修约规矩.[编辑] 四舍六入五留双规矩为了防止四舍五入规矩造成的成果偏高,误差偏大的现象消失,一般采取四舍六入五留双规矩(Banker's Rounding). 四舍六入五留双应当改为: 四舍六入逢五无后则留双,如许描写更轻易懂得和记住.四舍六入五留双规矩的具体办法是:(一)当尾数小于或等于4时,直接将尾数舍去.例如将下列数字全体修约为四位有用数字,成果为:(二)当尾数大于或等于6时,将尾数舍去并向前一位进位.例如将下列数字全体修约为四位有用数字,成果为:(三)当尾数为5,而尾数后面的数字均为0时,应看尾数“5”的前一位:若前一位数字此时为奇数,就应向进步一位;若前一位数字此时为偶数,则应将尾数舍去.数字“0”在此时应被视为偶数.例如将下列数字全体修约为四位有用数字,成果为:(四)当尾数为5,而尾数“5”的后面还有任何不是0的数字时,无论前一位在此时为奇数照样偶数,也无论“5”后面不为0的数字在哪一位上,都应向进步一位.例如将下列数字全体修约为四位有用数字,成果为:3按照四舍六入五留双规矩进行数字修约时,也应像四舍五入规矩那样,一次性修约到指定的位数,不成以进行数次修约,不然得到的成果也有可能是错误的.例如将数字10.2749945001修约为四位有用数字时,应一步到位:10.2749945001——10.27(准确).假如按照四舍六入五留双规矩分步修约将得到错误成果:——————(错误).。

四舍六入五留双规则的具体方法

四舍六入五留双规则的具体方法
例如将下列数字全部修约到两位小数,结果为:
12.73507——12.74
21.84502——21.85
12.64501——12.65
18.27509——18.28
38.305000001——38.31
依照四舍六入五留双规则进行数字修约时,也应像四舍五入规则那样,一次性修约到指定的位数,不成以进行数次修约,不然得到的结果也有可能是错误的.例如将数字10.2749945001修约到两位小数时,应一步到位:10.2749945001——10.27(正确).如果依照四舍六入五留双规则分步修约将得到错误结果:10.2749945001——10.274995——10.275——10.28(错误).
例如将下列数字全部修约到两位小数,结果为:
16.7777——16.78
10.29501——10.30
21.0191——21.02
(三)当尾数为5,而尾数后面的数字均为0时,应看尾数“5”的前一位:若前一位数字此时为奇数,就应向前进一位;若前一位数字此时为偶数,则应将尾数舍去.数字“0”在此时应被视为偶数.
例如将下列数字全部修约到两位小数,结果为:
12.6450——12.64
18.2750——18.28
12.7350——12.74
21.845000——21.84
(四)当尾数为5,而尾数“5”的后面还有任何不是0的数字时,无论前一位在此时为奇数还是偶数,也无论“5”后面不为0的数字在哪一位上,都应向前进一位.
时间:二O二一年七月二十九日
四舍六入五留双规则的具体办法之邯郸勺丸创作
时间:二O二一年七月二十九日
当尾数小于或等于4时,直接将尾数舍去
例如将下列数字全部修约到两位小数,结果为:
10.2731——10.27

四舍六入五成双的规则

四舍六入五成双的规则

四舍六入五成双的规则四舍六入五成双是一种数学中的取舍规则,适用于对小数进行取舍时的一种常用方法。

根据这种规则,当小数部分的第一位小于5时,直接舍弃后面的小数位;当小数部分的第一位大于5时,直接进位,舍弃后面的小数位;当小数部分的第一位等于5时,如果5后面还有非零数,则进位;如果5后面没有非零数,则根据5前面的数字的奇偶性来决定进位或舍弃。

如果5前面的数字是奇数,则进位;如果5前面的数字是偶数,则舍弃。

这种取舍规则常被应用于统计学、金融学、工程学等领域。

它的目的是通过对数字进行适当的取舍,减小舍入误差,并提高计算结果的准确性。

举个例子来说明四舍六入五成双的规则:假设要将12.567精确到百位,根据四舍六入五成双的规则,我们需要观察小数点后第二位数字,即“6”。

根据该规则,因为6大于5,所以进位,得到结果12.600。

再举一个例子:假设要将8.585精确到个位,根据四舍六入五成双的规则,我们需要观察小数点后第二位数字,即“5”。

根据该规则,因为5后面没有非零数,并且5前面的数字8是个偶数,所以舍弃,得到结果8这种取舍方法的好处是避免了舍入误差的积累,能够在一定程度上提高计算结果的准确性。

但是需要注意的是,这个规则并不是适用于所有情况的。

在特殊的情况下,还需要考虑具体的场景和要求,选择合适的取舍方式。

四舍六入五成双的规则在实际应用中也有一些争议。

有些人认为这种规则有时可能会引入不必要的误差,并且在一些场景下可能会导致结果的偏差。

因此,在具体应用中,还需要根据实际情况进行判断和权衡,选择合适的取舍方式。

总之,四舍六入五成双是一种常用的取舍规则,适用于对小数进行取舍的情况。

通过这种规则,可以在一定程度上提高计算结果的准确性。

但需要注意的是,在实际应用中,还需要根据具体的场景和要求,选择合适的取舍方式。

四舍六入五成双的原则

四舍六入五成双的原则

四舍六入五成双的原则
四舍六入五成双是一种数值舍入规则,常用在商业数学计算和科学计算中。

根据这个规则,当舍弃位的数值为4时,不论舍弃位前的数值是奇数还是偶数,都应该向前舍入到偶数;当舍弃位的数值为6时,舍弃位前的数值为奇数时,向前舍入到偶数;当舍弃位的数值为5时,舍弃位前的数值为偶数时,向前舍入到偶数。

以下是一些具体的例子:
1. 2.24经过四舍六入五成双的原则舍入到小数点后一位,则应该舍入到2.2。

2. 2.35经过四舍六入五成双的原则舍入到小数点后一位,则应该舍入到2.4。

3. 2.55经过四舍六入五成双的原则舍入到小数点后一位,则应该舍入到2.6。

4. 2.45经过四舍六入五成双的原则舍入到小数点后一位,则应该舍入到2.4。

这个规则的目的是在舍入的过程中尽量保持数值的平均分布,减少舍入带来的误差。

四舍六入五成双的例子

四舍六入五成双的例子

四舍六入五成双的例子
四舍六入五成双是一种数值近似的方法,通常用于数学计算、金融交易等领域,目的
是让计算结果更加准确。

该原则的具体规则是:当要舍弃的数值为5时,要看5前面的数
是奇数还是偶数,如果是奇数,则进位,如果是偶数,则不进位。

1、在人民币计算中,如果支付金额的小数位是5,且前一位是奇数,则进位;如果前一位是偶数,则不进位。

例如,当支付金额为10.155元时,四舍六入五成双的结果是
10.16元,因为小数位5前一位是5(奇数);当支付金额为10.125元时,四舍六入五成
双的结果是10.12元,因为小数位5前一位是2(偶数)。

2、在某电商平台上,商品价格经过四舍六入五成双后得到的价格更加准确,因此可
以提高用户的购买满意度。

例如,某商品原价为99.99元,经过四舍六入五成双后的价格
应该是100元,因为小数位5前一位是9(奇数)。

3、在高精度计算中,四舍六入五成双也是常用的近似方法。

例如,当需要计算π的
近似值时,可以使用四舍六入五成双的原则来确定保留位数。

如果要保留小数点后第10位,且第11位是5,则需要看第10位是奇数还是偶数来决定是否进位。

总之,四舍六入五成双是一种简单易懂的数值近似方法,可以帮助人们在各种场合下
更加准确地进行计算。

四舍六入五留双规则

四舍六入五留双规则

四舍六入五留双规则
四舍六入五留双是一种数值取舍的规则,常用于在对数值进行四舍五
入时的判断依据。

按照这个规则,在取舍其中一数值时,如果要取舍的位
数字小于5,那么舍去;如果要取舍的位数字大于5,那么进位;如果要
取舍的位数字等于5,那么根据5后面的位数字来判断:如果5后面的位
数字为0或偶数,那么舍去;如果5后面的位数字为奇数,那么进位。


面详细介绍四舍六入五留双规则。

四舍
六入
五留双
五留双指的是将要取舍的数的小数第一位数字等于5时,根据5后面
的数字来判断是进位还是舍去。

如果5后面的数字为0或偶数,那么舍去;如果5后面的数字为奇数,那么进位。

例如,对于3.1450来说,小数第
一位为5,5后面的数字为0,是偶数,所以五留双后舍去小数部分,只
保留整数部分。

四舍六入五留双规则的目的是为了尽可能减少数值取舍所引入的误差。

通过在取舍时按照一定的规则进行判断,可以使结果更加接近实际值,减
少取舍带来的误差影响。

这种规则常被应用于金融、统计学等领域,保证
数据的准确性和可靠性。

总体来说,四舍六入五留双规则是一种在数值取舍时常用的判断依据,能够更加准确地确定取舍后的结果。

通过舍去或进位的方式,它可以减少
误差的产生,提高数据的可靠性。

在实际应用中,我们可以根据具体情况
灵活运用这一规则,以确保数值的准确性。

四舍六入五成双

四舍六入五成双
"五"指的是根据5后面的数字来定,当5后有数时,舍5入1;当5后无数或为0时,需要分两种情况来讲:①5前为奇数,舍5入1;②5前为偶数,舍5不进。
具体规则如下:
1. 被修约的数字等于或小于4时,该数字舍去;
2. 被修约的数字等于或大于6时,则进位;
3. 被修约的数字等于5时,要看5前面的数字,若是奇数则进位,若是偶数则将5舍掉,即修约后末尾数字都成为偶数;
从统计学的角度,“四舍六入五成双”比“四舍五入”要科学,在大量运算时,它使舍入后的结果误差的均值趋于零,
而不是像四舍五入那样逢五就入,导致结果偏向大数,使得误差产生积累进而产生系统误差,“四舍六入五成双”使测量结果受到舍入误差的影响降到最低。
例如:1.15+1.25+1.35+1.45=5.2,若按四舍五入取一位小数计算:
1.2+1.3+1.4+1.5=5.4
按“四舍六入五成双”计算,1.2+1.2+1.4+1.4=5.2,舍入后的结果更能反映实际结果。
四舍六入五成双
四舍六入五成双是一种比较精确比较科学的计数保留法,是一种数字修约规则。
对于位数很多的近似数当有效位数确定后,其后面多余的数字应该舍去,只保留有效数字最末一位,
这种修约(舍入)规则是“四舍六入五成双”,也即“4舍6入5凑偶”这里“四”是指≤4 时舍去,"六"是指≥6时进上,
若5的后面还有不为“0”的任何数,则此时无论5的前面是奇数还是偶数,均应进位。
举例,用上述规则对下列数据保留3位有效数字:
9.8249=9.82, 9.82671=9.83
9.8350=9.84, 9.8351 =9.84

数字修约

数字修约

四舍六入五留双规则为了避免四舍五入规则造成的结果偏高,误差偏大的现象出现,一般采用四舍六入五留双规则。

四舍六入五留双规则的具体方法是:(一)当尾数小于或等于4时,直接将尾数舍去。

例如将下列数字全部修约为四位有效数字,结果为:0.53664——0.536610.2731——10.2718.5049——18.50 0.58344——0.583416.4005——16.4027.1829——27.18(二)当尾数大于或等于6时,将尾数舍去并向前一位进位。

例如将下列数字全部修约为四位有效数字,结果为:0.53666——0.53678.3176——8.31816.7777——16.78 0.58387——0.583910.29501——10.3021.0191——21.02(三)当尾数为5,而尾数后面的数字均为0时,应看尾数“5”的前一位:若前一位数字此时为奇数,就应向前进一位;若前一位数字此时为偶数,则应将尾数舍去。

数字“0”在此时应被视为偶数。

例如将下列数字全部修约为四位有效数字,结果为:0.153050——0.153012.6450——12.6418.2750——18.28 0.153750——0.153812.7350——12.7421.845000——21.84(四)当尾数为5,而尾数“5”的后面还有任何不是0的数字时,无论前一位在此时为奇数还是偶数,也无论“5”后面不为0的数字在哪一位上,都应向前进一位。

例如将下列数字全部修约为四位有效数字,结果为:0.326552——0.326612.73507——12.7421.84502——21.85 12.64501——12.6518.27509——18.2838.305000001——38.31按照四舍六入五留双规则进行数字修约时,也应像四舍五入规则那样,一次性修约到指定的位数,不可以进行数次修约,否则得到的结果也有可能是错误的。

例如将数字10.2749945001修约为四位有效数字时,应一步到位:10.2749945001——10.27(正确)。

四舍六入五留双规则的具体方法

四舍六入五留双规则的具体方法

四舍六入五留双规则的具体方法1.确定需要进行四舍五入的数值,例如:3.14592.确定保留的小数位数,例如:要保留两位小数。

3.找出需要保留的小数位后的一位数字,即第三位,即44.如果这个数字小于5,则直接舍弃第三位及之后的所有数字,即结果为3.145.如果这个数字大于5,则将这个数字加一,并且舍弃第三位及之后的所有数字,即结果为3.156.如果这个数字等于5,则判断其前一位数字的奇偶性。

如果前一位数字为偶数,则直接舍弃第三位及之后的所有数字,并保持前一位数字不变,即结果为3.14;如果前一位数字为奇数,则将其加一,并且舍弃第三位及之后的所有数字,即结果为3.15以上就是四舍六入五留双的具体方法。

下面通过几个实例来进一步说明:例1:将3.1459保留两位小数。

第三位数字为5,其前一位数字为4,即前一位为偶数。

根据规则,舍弃第三位及之后的所有数字,并保持前一位数字不变,即结果为3.14例2:将3.1469保留两位小数。

第三位数字为6,其前一位数字为4,即前一位为偶数。

根据规则,舍弃第三位及之后的所有数字,并保持前一位数字不变,即结果为3.14例3:将3.1455保留两位小数。

第三位数字为5,其前一位数字为4,即前一位为偶数。

根据规则,舍弃第三位及之后的所有数字,并保持前一位数字不变,即结果为3.14例4:将3.1455保留三位小数。

第四位数字为5,其前一位数字为4,即前一位为偶数。

根据规则,舍弃第四位及之后的所有数字,并保持前一位数字不变,即结果为3.145例5:将3.1456保留两位小数。

第三位数字为5,其前一位数字为4,即前一位为偶数。

根据规则,舍弃第三位及之后的所有数字,并保持前一位数字不变,即结果为3.14例6:将3.1456保留三位小数。

第四位数字为6,其前一位数字为5,即前一位为奇数。

根据规则,舍弃第四位及之后的所有数字,并将前一位数字加一,即结果为3.146通过以上实例,我们可以看到四舍六入五留双规则在处理“五”的时候,考虑到了前一位数字的奇偶性,以确保近似结果的准确性和公平性。

四舍六入五留双规则的具体方法

四舍六入五留双规则的具体方法

四舍六入五留双规则的具体方法之迟辟智美创作当尾数小于或即是4时,直接将尾数舍去例如将下列数字全部修约到两位小数,结果为:10.2731——10.2718.5049——18.5016.4005——16.4027.1829——27.18当尾数年夜于或即是6时将尾数舍去向前一位进位例如将下列数字全部修约到两位小数,结果为:16.7777——16.7810.29501——10.3021.0191——21.02(三)当尾数为5,而尾数后面的数字均为0时,应看尾数“5”的前一位:若前一位数字此时为奇数,就应向前进一位;若前一位数字此时为偶数,则应将尾数舍去.数字“0”在此时应被视为偶数.例如将下列数字全部修约到两位小数,结果为:12.6450——12.6418.2750——18.2812.7350——12.7421.845000——21.84(四)当尾数为5,而尾数“5”的后面还有任何不是0的数字时,无论前一位在此时为奇数还是偶数,也无论“5”后面不为0的数字在哪一位上,都应向前进一位.例如将下列数字全部修约到两位小数,结果为:12.73507——12.7421.84502——21.8512.64501——12.6518.27509——18.2838.305000001——38.31依照四舍六入五留双规则进行数字修约时,也应像四舍五入规则那样,一次性修约到指定的位数,不成以进行数次修约,否则获得的结果也有可能是毛病的.例如将数字10.2749945001修约到两位小数时,应一步到位:10.2749945001——10.27(正确).如果依照四舍六入五留双规则分步修约将获得毛病结果:10.2749945001——10.274995——10.275——10.28(毛病).。

四舍六入五成双函数公式

四舍六入五成双函数公式

四舍六入五成双函数公式
四舍六入五成双函数,又称四舍六入五考虑,简称四六五法,是中国
传统的一种计算方法,一般用于小数的四舍六入取舍问题。

根据这一原则,在进行小数的保留位数处理时,遇到5时进行特殊处理,即舍去5,而不
是进位,这种处理方式又被称为”四舍六入,五成双”。

四舍六入五成双函数公式为:
1. 公式:x = a + 0.5,其中a=round(x),a是大于等于x的最小整数。

2.当x的小数部分为0.5时,若a为偶数,则x=a;若a为奇数,则
x=a+1;。

3.当x的小数部分大于0.5时,x=a+1;。

4.当x的小数部分小于0.5时,x=a。

四舍六入五成双函数的优势在于可以使用者的计算结果趋于平均,既
满足了精度要求又保证了相对平均,从而更容易产生有效的结果。

其次,
四舍六入五成双又能保持计算结果的精确度,有效地避免出现小数越来越
多的情况,从而节省计算时间,达到最佳的计算效果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

huangjing81 油果子 等级: 结帖率:100%楼主 发表于: 2007-07-11 10:39:51哪位大侠能帮我写一个四舍六入五成双的算法,最好是封装成函数,小弟在此感激不尽!!!zjcxc 邹建 等级:结帖率:100%2 2 更多勋章回复于: 2007-07-11 10:46:00chuifengde 树上的鸟儿 等级: 结帖率:100%2007-07-11 10:47:14friendliu 无为 等级: 结帖率:100%#3 得分:1 回复于: 2007-07-11 10:57:31四舍六入五成双的算法:四舍六入五考虑,即当尾数≤4时舍去,尾数为6时进位。

当尾数4舍为5时,则应是末位数是奇数还是偶数,5前为偶数应将5舍去,5前为奇数应将5进位tufun * * 等级: 结帖率:96.1%#4 得分:1 回复于: 2007-07-11 11:00:53是变成偶数吗把数除2,然后四舍五入,再乘2huangjing81 油果子等级: 结帖率:100%原 结果1.444 1.441.446 1.45以下为有效位数后一位为5的情况1.445 1.441.435 1.441.425 1.421.635 1.64如果有效位数后一位是5,则看有效位数最后一位是奇数还是偶数,如果是偶数,则舍弃,如果是奇数,则进位,跟四舍五入有这样一点区别hellowork 一两清风 等级:结帖率:100%3#7 得分:39 回复于: 2007-07-11 11:55:57if object_id('fnRound') is not null drop function fnRound GO create function fnRound(@num float,@i int)returns varchar(20)asbegindeclare @str varchar(20) /*转换成字符类型*/declare @str2 varchar(20) /*小数位数后面的字符串*/declare @str3 varchar(2) /*小数位数字符串*/set @str = convert(varchar,@num)set @str2 = reverse(substring(reverse(@str),1,charindex('.',reverse(@str)) - 1 - @i))set @str3 = substring(@str,charindex('.',@str) + 1,@i)if @str2%5 = 0 and @str3%2 = 0 /*如果符合"五成双"*/set @str = substring(@str,1,charindex('.',@str) + @i)else /*否则四舍五入*/set @str = convert(varchar,round(@num,@i))RETURN @strendGO----测试declare @num float,@num2 float,@num3 float,@num4 float,@i intselect @num = 1.45000,@num2 = 1.3500,@num3 = 1.4501,@num4 = 1.4600set @i = 1SELECTdbo.fnRound(@num,@i) as [1.4500], /*五成双(4已经是偶数保持不变)*/ dbo.fnRound(@num2,@i) as [1.3500], /*五成双(将3变成偶数4)*/dbo.fnRound(@num3,@i) as [1.4501], /*四舍五入*/dbo.fnRound(@num4,@i) as [1.4600] /*四舍五入*/----清除测试环境 drop function fnRound/*结果 1.45000 1.3500 1.4501 1.4600-------------------- -------------------- -------------------- ------1.4 1.4 1.5 1.5*/hellowork 一两清风 等级:结帖率:100%3#8 得分:0 回复于: 2007-07-11 12:02:03/*使用楼主的测试数据1.445 1.44 1.435 1.44 1.425 1.421.635 1.64*/if object_id('fnRound') is not nulldrop function fnRoundGOcreate function fnRound(@num float,@i int)returns varchar(20)asbegindeclare @str varchar(20) /*转换成字符类型*/declare @str2 varchar(20) /*小数位数后面的字符串*/declare @str3 varchar(2) /*小数位数字符串*/set @str = convert(varchar,@num)set @str2 = reverse(substring(reverse(@str),1,charindex('.',reverse(@str)) - 1 - @i)) set @str3 = substring(@str,charindex('.',@str) + 1,@i)if @str2%5 = 0 and @str3%2 = 0 /*如果符合"五成双"*/set @str = substring(@str,1,charindex('.',@str) + @i)else /*否则四舍五入*/set @str = convert(varchar,round(@num,@i))RETURN @strendGO----测试declare @num float,@num2 float,@num3 float,@num4 float,@i intselect @num = 1.445,@num2 = 1.435,@num3 = 1.425,@num4 = 1.635set @i = 2 /*保留的小数位数*/SELECTdbo.fnRound(@num,@i) as [1.445], /*五成双(4已经是偶数保持不变)*/dbo.fnRound(@num2,@i) as [1.435], /*五成双(将3变成偶数4)*/dbo.fnRound(@num3,@i) as [1.425], /*五成双(2已经是偶数保持不变)*/dbo.fnRound(@num4,@i) as [1.635] /*四舍五入*/----清除测试环境drop function fnRound/*结果 1.445 1.435 1.425 1.635-------------------- -------------------- -------------------- -----1.44 1.44 1.42 1.64*/chuifengde 树上的鸟儿 等级:结帖率:100%#10 得分:1 回复于: 2007-07-11 15:02:40楼上的函数有点小错误:SELECT dbo.fnRound(1.445000,4) as [1.445]hellowork 一两清风 等级:结帖率:100%#11 得分:0 回复于: 2007-07-11 15:29:11多谢楼上的指正,下面的函数修正了上述错误:if object_id('fnRound') is not null drop function fnRound3 GOcreate function fnRound(@num float,@i int)returns varchar(20)asbegindeclare @str varchar(20) /*转换成字符类型*/declare @str2 varchar(20) /*小数位数后面的字符串*/declare @str3 varchar(2) /*小数位数字符串*/set @str = convert(varchar,@num)set @str2 = stuff(@str,1,charindex('.',@str) + @i,'') --【!修正了此行!】set @str3 = substring(@str,charindex('.',@str) + 1,@i)if @str2%5 = 0 and @str3%2 = 0 /*如果符合"五成双"*/set @str = substring(@str,1,charindex('.',@str) + @i)else /*否则四舍五入*/set @str = convert(varchar,round(@num,@i))RETURN @strendGO----测试SELECT dbo.fnRound(1.445000,4) as [1.445]----清除测试环境drop function fnRound/*结果1.445 --------------------1.445*/huangjing81 油果子 等级:结帖率:100%dbo.fnRound(1.44501,2) 结果应等于1.46 dbo.fnRound(1.44500,2) .......... 1.44dbo.fnround(1.43500,2) .......... 1.44dbo.fnRound(1.43501,2) .......... 1.44再次感谢.huangjing81 油果子 等级: 结帖率:100%dbo.fnRound(1.2,2) ......... 1.20hellowork 一两清风等级:结帖率:100%3dbo.fnRound(1.44501,2) 结果应等于1.46--------------------------------------------------------------------------------这个应该等于1.45,怎么会是1.46呢?1.44501的2位有效位数后面的数值等于501,不是5的整数倍,所以不符合五成双的要求,因此按四舍五入处理,结果为1.45. 楼主认为的1.46是如何计算的?huangjing81油果子等级:结帖率:100% 2007-07-11 21:18:55五成双的原则是有效位后面的数刚好等于5的时候才适用,其他情况全适用四舍五入的原则,并不是只要是5的整数倍就适用即a.bcdef... 如果取2位有效数字,刚看def...一、当d刚好等于5并且ef...都等于0的时候,此时判断c是偶数还是奇数,如果是奇数则入,如果是偶数则舍二、其他情况一律四舍五入hellowork#16得分:0 回复于:2007-07-11 23:26:13一两清风 等级: 结帖率:100% 3 还是不明白楼主的1.44501保留2位小数后怎么得到1.46的.下面是针对楼主提出的:1.五成双的原则是有效位后面的数刚好等于5的时候才适用,其他情况全适用四舍五入的原则,并不是只要是5的整数倍就适用;2.小数数位不足时,应当用0补齐if object_id('fnRound') is not nulldrop function fnRoundGOcreate function fnRound(@num float,@i int)returns varchar(20)asbegindeclare @str varchar(20) /*转换成字符类型*/declare @str2 varchar(20) /*有效数字后面的字符串*/declare @str3 varchar(2) /*有效数字字符串*/set @str = convert(varchar,@num) --+ replicate('0',5) --【!修正了此行!】set @str2 = stuff(@str,1,charindex('.',@str) + @i,'')set @str3 = substring(@str,charindex('.',@str) + 1,@i)if patindex('%[^05]%',@str) = 0 and @str3%2 = 0 /*如果符合"五成双"*/set @str = substring(@str,1,charindex('.',@str) + @i)else /*否则四舍五入*/set @str = convert(varchar,round(@num,@i))RETURN @str + replicate('0',@i - len(@str3))endGO----测试SELECTdbo.fnRound(1.44500,2), /*结果等于1.45*/dbo.fnRound(1.44501,2), /*结果等于1.45*/dbo.fnRound(1.44505,2), /*结果等于1.45*/ dbo.fnRound(1.43500,2), /*结果等于1.44*/dbo.fnRound(1.43501,2), /*结果等于1.44*/dbo.fnRound(1.41505,2), /*结果等于1.42*/dbo.fnRound(1.4,5) /*用0补齐有效数字位数,1.40000*/yjlhch 爱拼才会赢 等级: 结帖率:97.67%1 回复于: 2007-07-12 08:24:38woshichenduan 该用户很懒,没设置昵称 等级:结帖率:91.67%#19 得分:1 回复于: 2007-07-12 08:58:53请问,hellowork 那个函数怎么编译通不过呀?create function fnRound(@num float,@i int) returns varchar(20) asbegindeclare @str varchar(20) /*转换成字符类型*/declare @str2 varchar(20) /*有效数字后面的字符串*/declare @str3 varchar(2) /*有效数字字符串*/ set @str = convert(varchar,@num) --+ replicate('0',5) --【!修正了此行!】set @str2 = stuff(@str,1,charindex('.',@str) + @i,'') set @str3 = substring(@str,charindex('.',@str) + 1,@i)if patindex('%[^05]%',@str) = 0 and @str3%2 = 0 /*如果符合"五成双"*/ set @str = substring(@str,1,charindex('.',@str) + @i)else /*否则四舍五入*/set @str = convert(varchar,round(@num,@i)) RETURN @str + replicate('0',@i - len(@str3))endhellowork 一两清风 等级:结帖率:100%3#21 得分:0 回复于: 2007-07-12 09:20:53woshichenduan() ( ) 信誉:100 Blog 加为好友 2007-07-12 08:58:53 得分: 0 请问,hellowork 那个函数怎么编译通不过呀?------------------------------------------------------------------------错误提示是什么?woshichenduan 该用户很懒,等级:结帖率:91.67% Error: PLS-00103: 出现符号 "@"在需要下列之一时:<an identifier> <a double-quoted delimited-identifier> currentLine: 1Text: create or replace function fnRound(@num float,@i int)woshichenduan 该用户很懒,等级:结帖率:91.67%2007-07-12 14:48:59hellowork一两清风 等级:结帖率:100%3woshichenduan 该用户很懒,等级: 结帖率:91.67%huangjing81 油果子 等级: 结帖率:100%#27 得分:0 回复于: 2007-07-12 19:10:02多谢各位捧场,再次感谢hellowork 。

相关文档
最新文档