首页 » 建站技术 » PHP 技术 » 浏览内容

round — 对浮点数进行四舍五入


2005-08-15 15:13:44 5,255 0 发表评论 字体: 作者:C.K.

体验版 88 元,个人版 128 元,多用户版 288元个人版160元升级到多用户版。

round
(PHP 3, PHP 4, PHP 5)

round — 对浮点数进行四舍五入

说明

float round ( float val [, int precision] )

返回将 val 根据指定精度 precision(十进制小数点后数字的数目)进行四舍五入的结果。precision 也可以是负数或零(默认值)。

“四舍五入法”是我们所熟悉的求近似数的方法。它深深地印在我们的脑海里,只要一遇到求近似数的问题,马上就会想到“四舍五入法”。可是,在工程技术和科学实验中,经常要对大量的数据进行统计分析。如果仍用“四舍五入法”取近似值,就不够精确。世界上许多国家已广泛采用“四舍六入法”。我国国家科委于1955年就作了推荐。

  “四舍六入法”可以概括为“四舍六入五考虑,五后非零就进一,五后皆零看奇偶,五前为偶应舍去,五前为奇要进一。”就是说,如果省略的尾数最高位是4或小于4,就将尾数都舍去,如果省略的尾数最高位是6或大于6,去掉尾数后,要向它的前一位进一;如果要省略的尾数最高位是5,那就要根据具体情况而定。如果5后不都是0,将尾数略去后要向它的前一位进一;如果5后面都是0,就要看它的前一位是单数还是双数,5的前一位是双数,就将尾数舍去,5的前一位是单数,舍去尾数后要向它的前一位进一。

  所以微软的这个函数是没有错误的,他是按照IEEE Floating Point Standard的标准(参考Section 5.5 of the “IEEE Standard for Binary Floating-Point Arithmetic”)。

如果想要我们的四舍五入可以用format函数

补充的是,我们那个时候在学校还没有学过这个,不过现在的高中已经讲这个四舍六入法了

例子 1. round() 例子

echo round(3.4);         // 3
  • echo round(3.5);         // 4
  • echo round(3.6);         // 4
  • echo round(3.6, 0);      // 4
  • echo round(1.95583, 2);  // 1.96
  • echo round(1241757, -3); // 1242000
  • echo round(5.045, 2);    // 5.04 (质疑 ?)
  • echo round(5.055, 2);    // 5.06
  • ?>
  • 注意
    在对正好一半的分数进行舍入时 round() 在偶数次舍去,在奇数次进位。如果你想迫使它对 .5(或 .05)总向一个方向舍入,加上或减去一个很小的因子。对一半值舍去对另一半值进一的背后原因是避免传统的银行问题,即如果总是舍去则银行从顾客那里多拿了钱,如果总是进一则银行最终会损失了钱。对此平均舍入则在统计上达到了平衡。 (经过测试,我遇到的总是四舍五入的结果.如echo round(5.045, 2),其输出结果是5.05)

    注: PHP 默认不能正确处理类似 “12,300.2” 的字符串。见字符串转换为数值。

    注: precision 参数仅在 PHP 4 中可用。

    参见 ceil(),floor() 和 number_format()。

    网站统计 Statistics

    • 创建时间: 2005年1月3日 距今5066 天
    • 日志总数: 2461
    • 评论总数: 630
    • 标签总数: 654
    • 链接总数: 273
    • 最后更新: 2018-8-31 17:57:04
    • 您是本站第 14166698 位访客

    广告区 Guǎng Gào