zoukankan      html  css  js  c++  java
  • 【PHP输出两位小数】使用PHP来输出保留两位小数的数字【原创】

    由于业务需要,需要把一个数字格式化为保留两位小数(四舍五入):

    第一种方案:round

    代码:
    1
    $aaa = 15.0393;
    2
    var_dump(round($aaa, 2));
    3
    4
    $bbb = 16.1;
    5
    var_dump(round($bbb, 2));
    6
    7
    $ccc = 13;
    8
    var_dump(round($ccc, 2));
    9
    10
    /**
    11
    运行:
    12
    double(15.04)
    13
    double(16.1)
    14
    double(13)
    15
     */
    这种方案有问题,如果原来的数字只有一个小数或者是不带有小数的话,那么只会照常输出而不会在后面补0。如果向上取整或者是向下取整的话使用ceil或者是floor。

    第二种方案:number_format

    代码:
    $aaa = 15.0393;
    var_dump(number_format($aaa, 2, '.', ''));
    
    $bbb = 16.1;
    var_dump(number_format($bbb, 2, '.', ''));
    
    $ccc = 13;
    var_dump(number_format($ccc, 2, '.', ''));
    
    /**
    运行:
    string(5) "15.04"
    string(5) "16.10"
    string(5) "13.00"
     */

    这种方案虽然说可以在后面补0,但是会被转化为字符串。

    第三种方案:sprintf

    代码:
    $aaa = 15.0393;
    var_dump(sprintf('%.2f', $aaa));
    
    $bbb = 16.1;
    var_dump(sprintf('%.2f', $bbb));
    
    $ccc = 13;
    var_dump(sprintf('%.2f', $ccc));
    
    /**
    运行:
    string(5) "15.04"
    string(5) "16.10"
    string(5) "13.00"
     */

    和上面的一样。


    // ToDo:暂没有找到好的方案能后面补0并且输出的是数字类型而不是字符串的。

  • 相关阅读:
    PAT乙级1038
    PAT乙级1033
    PAT乙级1032
    memset初始化数组的坑
    C/C++小课之数组名是什么
    PAT乙级1031
    Alpha阶段 第一次Scrum Meeting
    技术规格说明书
    功能规格说明书
    团队项目选择
  • 原文地址:https://www.cnblogs.com/linewman/p/9918111.html
Copyright © 2011-2022 走看看