This topic has been archived. It cannot be replied.
-
工作学习 / IT技术讨论 / 做银行软件的同学请教一下,对于1.6149 和2.6149这两个数字,要求四舍五入到2为小数,结果应当是多少?
-canadiantire(轮胎-M.I.N.K.);
2005-4-7
(#2225727@0)
-
1.61, 2.61
-jianghongca(慎独);
2005-4-7
(#2225730@0)
-
为什么不是1.61 和 2.62?
-canadiantire(轮胎-M.I.N.K.);
2005-4-7
(#2225737@0)
-
为什么你觉得两个会有不同的结果呢?
-jianghongca(慎独);
2005-4-7
(#2225743@0)
-
半舍入有个规则,就是只对偶数“入",而对奇数“舍”。所以1.6149整数部分是1,是奇数,舍掉;2.6149整数部分是2,是偶数,入。
-canadiantire(轮胎-M.I.N.K.);
2005-4-7
(#2225756@0)
-
哈哈,背书的结果。四舍五入的“整数部分”只的是“四”和“五”之前的那一位数。在这里就是小数点后弟2位。看来你是想问:1.615和1.625。
-tubie(blackguest);
2005-4-7
(#2225770@0)
-
En, 也许我搞错了/
-canadiantire(轮胎-M.I.N.K.);
2005-4-7
(#2225786@0)
-
:)这个规则说的是,尽量让四舍五入后的结果最末位是偶数。如果按照这个规则,1.615~1.62; 1.625~1.62,不过用这个规则的地方不很多。至于这里的银行,我不清楚。
-tubie(blackguest);
2005-4-7
(#2225806@0)
-
en, 你说得对。我程序不在手上,例子举错了。
-canadiantire(轮胎-M.I.N.K.);
2005-4-7
(#2225823@0)
-
又试了一下, 下面这个程序得到两个结果:echo round(1.635, 2);
echo round(2.645, 2);
echo round(3.645, 2);
echo round(4.645, 2);
echo round(5.635, 2);
echo round(6.645, 2);
echo round(7.645, 2);
echo round(8.645, 2);
echo round(9.645, 2);
结果是:
1.64
2.65
3.65
4.64
5.64
6.65
7.65
8.65
9.65
-canadiantire(轮胎-M.I.N.K.);
2005-4-7
{273}
(#2225838@0)
-
嗯,这里没有用半舍入规则。其实这个规则真的使用地方不多8过:echo round(4.645, 2) - 4.64?似乎用了一下下,估计是笔误?
-tubie(blackguest);
2005-4-7
{62}
(#2225865@0)
-
不是笔误,上面李子匆忙写得乱七八糟,实际上1.645 ~ 9.645中只有4.645 returns 4.64. wired, Eh?
-canadiantire(轮胎-M.I.N.K.);
2005-4-7
(#2225914@0)
-
这个函数弓虽!
-tubie(blackguest);
2005-4-7
(#2226166@0)
-
反正我以前写的所有计息程序没有你说的这种规矩,简单,就是看第n+1位
-jianghongca(慎独);
2005-4-7
(#2225776@0)
-
Thanks a lot.
-canadiantire(轮胎-M.I.N.K.);
2005-4-7
(#2225873@0)
-
谈天说地????
-scottee(笑熬浆糊);
2005-4-7
(#2225731@0)
-
呵呵,这儿贴惯了,麻烦斑竹给挪地方把。
-canadiantire(轮胎-M.I.N.K.);
2005-4-7
(#2225741@0)
-
以为你是开玩笑呢? (#2225730) 是正解. 2.62? X
-scottee(笑熬浆糊);
2005-4-7
(#2225751@0)
-
四舍五入到2位,就只看到第三位,不管第四位。好像小学就这么教的八?反正我一直这么理解的。:))
-luoboyang(萝卜秧);
2005-4-7
(#2225750@0)
-
正解. 小学里的事啦....
-scottee(笑熬浆糊);
2005-4-7
(#2225757@0)
-
谢谢回覆,我也一直没有注意到这个事,是昨天用PHP的round汉书才发现有这么回事。
-canadiantire(轮胎-M.I.N.K.);
2005-4-7
(#2225769@0)
-
你说的半舍入我还是真没听说过。:)
-luoboyang(萝卜秧);
2005-4-7
(#2225777@0)
-
是有这个规矩。国内大学不知道,以前学的也没有区分奇偶。这边就要,化学做实验什么的都是按照这样来的。
-heian(黑暗㊣);
2005-4-7
(#2225848@0)
-
国内大学有的,好像叫计量学,专门一门科。
-yuanzidan(原子弹);
2005-4-7
(#2225871@0)
-
一开始用很不习惯。这边对数据格式要求的规矩不少。
-heian(黑暗㊣);
2005-4-7
(#2225895@0)
-
长见识了。:)
-luoboyang(萝卜秧);
2005-4-7
(#2225897@0)
-
hehe, 我查了一下,有的舍入函数有5种选择,ceiling, floor, odd, even 和random,:D
-canadiantire(轮胎-M.I.N.K.);
2005-4-7
(#2225859@0)
-
还有去尾法. 5.359 和 5352 都为5.35
-scottee(笑熬浆糊);
2005-4-7
(#2225884@0)
-
that is floor. ;)
-canadiantire(轮胎-M.I.N.K.);
2005-4-7
(#2225903@0)
-
谢谢,我以前就知道几个算法。:)
-luoboyang(萝卜秧);
2005-4-7
(#2225909@0)
-
好像以前还和你争过加仑的大小,也是有关这方面的,呵呵。
-yuanzidan(原子弹);
2005-4-7
(#2225877@0)
-
3。7854?:))
-luoboyang(萝卜秧);
2005-4-7
(#2225892@0)
-
:)
-yuanzidan(原子弹);
2005-4-7
(#2225917@0)
-
大学应该讲过吧,不过我已经差不多忘了。大概是只看后1位, 1,2,3,4被舍,5,6,7,8,9进位, 进位的概率比舍弃大, 不是50%:50%
-zhx(zhx);
2005-4-7
(#2226660@0)
-
Banker's round, e.g.
1.615 -> 1.61
1.625-> 1.63
so the result should be 1.61 and 2.61
-yw66(yw66);
2005-4-7
(#2225879@0)
-
Thanks.
-canadiantire(轮胎-M.I.N.K.);
2005-4-7
(#2225931@0)
-
no no no. (google)Subj: Bankers rounding
From: Rudel Simard
Some programming languages use "Bankers rounding" which was developed as a more accurate method of rounding. With Bankers rounding, values below 0.5 go down and values above 0.5 go up. Values of exactly 0.5 go to the nearest even number. So 12.5 will be rounded down to 12 (as in the example on the right) and a value of 13.5 will be rounded up to 14.
-aka(棒棒);
2005-4-7
{417}
(#2226228@0)
-
thanks.
-canadiantire(轮胎-M.I.N.K.);
2005-4-7
(#2226269@0)