php 四舍六入(银行家舍入)如何实现?有现成的方法吗

WBOY
Release: 2016-06-06 20:43:13
Original
1216 people have browsed it

求问php 四舍六入(银行家舍入)如何实现?谢谢各位~

回复内容:

求问php 四舍六入(银行家舍入)如何实现?谢谢各位~

四舍五入的方法是round(),文档在此:
http://php.net/manual/zh/function.round.php
如:

<code>php -r "echo round(1/8,2);"
</code>
Copy after login

将输出:

<code>0.13
</code>
Copy after login

但是,如果你的浮点数不是从其它地方传进来的(例如$_GET传入,或者取自数据库),而是你自己用两个数计算出来的,请牢记,不要使用PHP内置的+-*/操作符,请使用bcmath,执行下面这段代码你就知道原因了:

<code>php -r "echo 19.45-19.35;"
</code>
Copy after login

我也以为你是笔误了,回答了四舍五入的,银行家舍入的方法也是round(),第三个参数用PHP_ROUND_HALF_EVENPHP_ROUND_HALF_ODD都可以,如

<code>php -r "echo round(1/8,2,PHP_ROUND_HALF_ODD);"
</code>
Copy after login

你问的是五舍六入吧,四舍六入的话,五怎么办?

<code>round($number, PHP_ROUND_HALF_DOWN);
</code>
Copy after login

UPDATE

查了一下,还真有银行家舍入这种四舍六入,五看奇偶的做法
PHP_ROUND_HALF_ODD 或者 PHP_ROUND_HALF_EVEN 也许是你要的
手册里有

Related labels:
php
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!