实现类似php函数number(php类方法和函数)

发布时间:2022-11-16

本文目录一览:

  1. 请高手帮个忙,在php中number_format() 的功能是什么,怎么用,如果可以请给我几个实例,致上!
  2. 如何实现 php 在线取号
  3. PHP实现数字补零功能的2个函数介绍
  4. 自定义名为Number的类,用于实现两个数字的四则运算。PHP!在线等!急!
  5. 用php使数字保留小数点后两位怎么做的?

请高手帮个忙,在php中number_format() 的功能是什么,怎么用,如果可以请给我几个实例,致上!

number_format() 函数通过千位分组来格式化数字。 特别注意: 该函数支持一个、两个或四个参数(不是三个)。

<?php
echo number_format("5000000")."<br>";
echo number_format("5000000",2)."<br>";
echo number_format("5000000",2,",",".");
?>

运行后的结果:

5,000,000
5,000,000.00
5.000.000,00

语法

number_format(number, decimals, decimalpoint, separator)

参数说明:

  • number:必需。要格式化的数字。如果未设置其他参数,则数字会被格式化为不带小数点且以逗号(,)作为千位分隔符。
  • decimals:可选。规定多少个小数。如果设置了该参数,则使用点号(.)作为小数点来格式化数字。
  • decimalpoint:可选。规定用作小数点的字符串。
  • separator:可选。规定用作千位分隔符的字符串。仅使用该参数的第一个字符。比如 "xxx" 仅输出 "x"。注释:如果设置了该参数,那么所有其他参数都是必需的。

如何实现 php 在线取号

取号的用户需要登录他自己的账号吗?如果需要,那要判断一下,这个用户是否已经取号? 如果不需要,那么就和银行一样,一个人可能会取多次号。 与银行类似,可以设计一个数据库表格:get_number

  • id(主键,自增)
  • 日期(取号当天有效)
  • 获取的号码(不可以重复)
  • 获取时间
  • 当前正在处理的号码(用此字段判断还要等候多少人) 如果是用户登录之后的操作,可以再加一个字段:用户名(或者其他的可以唯一判断一个用户的字段)。 当一个用户来到取号页面,点击某个按钮,比如:“取号”,那么你就到数据库里面获取当前最大的号码,然后加1,再把取号的相关字段插入到数据库中,就完成取号了。 只是大概思路,可以根据你的需求来详细的编写程序。

PHP实现数字补零功能的2个函数介绍

在PHP中至少有两个函数能够帮助我们快速实现数字补零: 首先是 PHP 的 str_pad 函数:

string str_pad (
    string $input,
    int $pad_length
    [, string $pad_string = " "
    [, int $pad_type = STR_PAD_RIGHT ]]
)

常用参数说明:

  • $input:待填补的字符串
  • $pad_length:填补后的长度
  • $pad_string:填补字符串
  • $pad_type:填补位置,有以下选项:
    • STR_PAD_LEFT:左边填充
    • STR_PAD_RIGHT:右边填充
    • STR_PAD_BOTH:两端填充

实例展示:

echo str_pad(1,8,"0",STR_PAD_LEFT); // 结果:00000001
echo str_pad(1,8,"0",STR_PAD_RIGHT); // 结果:10000000
echo str_pad(1,8,"0",STR_PAD_BOTH); // 结果:00010000

在上边的例子中值得注意的一个细节是,如果填补的位数是个奇数,例如例三中填补了7个0,右边优先。 下面再看下补零的另外一种方法:PHP 的 sprintf 函数:

# sprintf — 返回一个格式化字符串

这个函数用起来比较灵活,有待学者们深挖,这里主要讲实现数值左边补零(或者在小数点后补零)的处理方式。

左边补零

echo sprintf("%05d",1); 
// %05d的意思:用一个5位数的数字格式化后边的参数,如果不足5位就补零
// 运行结果是 00001

小数点后补零

echo sprintf("%01.3f",1);
// %01.3f的意思:用一个小数点后最少三位不足三位补零,小数点前最少一位,不足一位补零的浮点数格式化后边的参数
// 运行结果是:1.000

另外还可以自己编写一个自定义函数进行处理; 编写代码各有所优也有所劣,大家可以任选适合的;

注:sprintf 能够保证不至于误操作把 1 补成 1000000,str_pad 可以保证想补啥补啥。


自定义名为Number的类,用于实现两个数字的四则运算。PHP!在线等!急!

<?php
class Number {
    private $na;
    private $nb;
    private $symbol;
    private $result;
    function __construct() {
    }
    public function getResult($_na, $_nb, $_symbol) {
        $this->na = $_na;
        $this->nb = $_nb;
        $this->symbol = $_symbol;
        switch ($this->symbol) {
            case '+':
                $this->symbol = '+';
                echo "$this->na + $this->nb = " . $this->result = $this->na + $this->nb;
                break;
            case '-':
                $this->symbol = '-';
                echo "$this->na - $this->nb = " . $this->result = $this->na - $this->nb;
                break;
            case '*':
                $this->symbol = '*';
                echo "$this->na * $this->nb = " . $this->result = $this->na * $this->nb;
                break;
            case '/':
                $this->symbol = '/';
                $this->check($this->nb);
                break;
            default:
                $this->symbol = '+';
                echo "$this->na + $this->nb = " . $this->result = $this->na + $this->nb;
        }
    }
    private function check($_nb) {
        $this->nb = $_nb;
        if ($this->nb == 0) {
            echo "除数不能为零!";
        } else {
            echo "$this->na / $this->nb = " . $this->result = $this->na / $this->nb;
        }
    }
}
$js = new Number();
$js->getResult(3, 2, "*"); // 符号为 + - * /
?>

用php使数字保留小数点后两位怎么做的?

PHP 中的 round() 函数可以实现。 round() 函数对浮点数进行四舍五入。

语法

round(x, prec)

参数说明:

  • x:可选。规定要舍入的数字。
  • prec:可选。规定小数点后的位数。 返回将 x 根据指定精度 prec(十进制小数点后数字的数目)进行四舍五入的结果。prec 也可以是负数或零(默认值)。

注释:PHP 默认不能正确处理类似 "12,300.2" 的字符串。

示例:

<?php
echo round(-4.635, 2);
?>

输出:

-4.64