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

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


代码如下:

#str_pad — 使用另一个字符串填充字符串为指定长度

顾名思义这个函数是针对字符串,对指定的字符串填补任何其它的字符串
str_pad参数说明:


代码如下:

string str_pad ( string $input , int $pad_length [, string $pad_string = " " [, int $pad_type = STR_PAD_RIGHT ]] )
#常用参数说明:str_pad(带填补的字符串,填补后的长度,填补字符串,填补位置)

其中填补后的长度必须是个正整数,填补位置有三个选项,
左边: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可以保证想补啥补啥。

(0)

相关推荐

  • PHP 数字左侧自动补0

    复制代码 代码如下: <?php           $sourceNumber = "1";           $newNumber = substr(strval($sourceNumber+1000),1,3);           echo "$newNumber";       ?> 这个时候就会出现:001  如果要增加位数的话可以将1000加大,然后把3也加大.  举例:如果我要补上 "4个0" 第03行 就要变成这样

  • PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法

    一.数字补0. 如果要自动生成学号,自动生成某某编号,就像这样的形式"d0000009"."d0000027"时,那么就会面临一个问题,怎么把左边用0补齐成这样8位数的编码呢?我想到了两种方法实现这个功能. 方法一: 先构造一个数字10000000,千万,也就是一个1,7个0,然后加上当前的编号(比如是3),那么就得到 10000003,用字符串截取 substr('10000003',1,7)后就得到0000003,最后在与"d"拼接,就得到了

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

    在PHP中至少有两个函数能够帮助我们快速实现数字补零:首先是PHP str_pad函数: 复制代码 代码如下: #str_pad - 使用另一个字符串填充字符串为指定长度 顾名思义这个函数是针对字符串,对指定的字符串填补任何其它的字符串str_pad参数说明: 复制代码 代码如下: string str_pad ( string $input , int $pad_length [, string $pad_string = " " [, int $pad_type = STR_PAD

  • php实现数字补零的方法总结

    在php中有两个函数--至少有两个是否有其他的我还不知道,能够实现数字补零,str_pad(),sprintf()详细如下 str_pad 顾名思义这个函数是针对字符串来说的这个可以对指定的字符串填补任何其它的字符串 例如:str_pad(带填补的字符串,填补后的长度,填补字符串,填补位置) 其中填补后的长度必须是个正整数,填补位置有三个选项, 左边:STR_PAD_LEFT, 右边:STR_PAD_RIGHT, 两端:STR_PAD_BOTH 例如: echo str_pad(1,8,"0″,

  • 微信小程序实现倒计时补零功能

    微信小程序中 "倒计时自动补零" 的一点代码,方法比较简单粗暴,想着以后怎么也能用到,就先总结出来了. 代码: js: //index.js var num = 10//计时 var strH = '' var strM = '' var strS = '' var timer = '' Page({ data: { timeText:''//展示 }, onLoad: function () { this.move() //计时开始 后面的1000是毫秒 每1000毫秒跳一次 tim

  • Python数字/字符串补零操作实例代码

    有时候在使用 Python 的时候,想要对一个数字或者字符串进行补零操作,即把「1」变为一个八位数的「00000001」,这个时候可以使用一下方法来进行补零. 字符串补零: 可以使用 zfill() 函数来给字符串补零: >>> str = "123" >>> print(str.zfill(8)) 00000123 还能把整数转化成字符来使用 zfill() 补零: >>> num = 123 >>> print

  • 在js中做数字字符串补0(js补零)

    通常遇到的一个问题是日期的"1976-02-03 HH:mm:ss"这种格式 ,我的比较简单的处理方法是这样: function formatDate(d) { var D=['00','01','02','03','04','05','06','07','08','09'] with (d || new Date) return [ [getFullYear(), D[getMonth()+1]||getMonth()+1, D[getDate()]||getDate()].join

  • JavaScript实现按照指定长度为数字前面补零输出的方法

    本文实例讲述了JavaScript实现按照指定长度为数字前面补零输出的方法.分享给大家供大家参考.具体分析如下: 例如我们希望输出的数字长度是固定的,假设为10,如果数字为123,则输出0000000123,不够位数就在之前补足0,这里提供了三种不同的方式实现JS代码给数字补0 的操作 方法1 function PrefixInteger(num, length) { return (num/Math.pow(10,length)).toFixed(length).substr(2); } 方法

  • JavaScript如何实现对数字保留两位小数一位自动补零

    本章节介绍一下如何实现对数字保留两位小数效果,如果数字的原本小数位数不到两位,那么缺少的就自动补零,这个也是为了统一的效果,先看代码实例: function returnFloat(value){ var value=Math.round(parseFloat(value)*100)/100; var xsd=value.toString().split("."); if(xsd.length==1){ value=value.toString()+".00"; r

  • python 实现数字字符串左侧补零的方法

    因为做新闻爬虫,url里面0-9的日期要左侧加零.经过查询之后得到了两种方法. 一.先设一个足够大的数,比如1000000,然后加上当前的数字比如9,得到1000009,然后转化为字符串获取第6.7位即可.下面以1000为例. k=1000 #k是用来获取01 02 03 字符串的 1001 截取第三四位 即可 for i in range(1,31): strtime=i+k time=str(strtime)[2:4] print(len(time)) 二.先获取当前字符串长度,然后用预期长

  • C#基于纯数学方法递归实现货币数字转换中文功能详解

    本文实例讲述了C#基于纯数学方法递归实现货币数字转换中文功能.分享给大家供大家参考,具体如下: 最近由于项目的原因,需要写一个货币数字转换中文的算法,先在网了找了一下,结果发现无一列外都是用(Replace)替换的方式来实现的,所以想写个另外的算法:因为本人是学数学出身的,所以用纯数学的方法实现. 注意:本文中的算法支持小于1023 (也就是9999亿兆)货币数字转化. 货币中文说明: 在说明代码之前,首先让我们回顾一下货币的读法. 10020002.23  读为 壹仟零贰万零贰元贰角叁分 10

  • javascript 补零 函数集合

    在输出整数时如果需要在前面或者后面补零成一定长度可以用以下函数. function padLeft(str,lenght){ if(str.length >= lenght) return str; else return padLeft("0" +str,lenght); } function padRight(str,lenght){ if(str.length >= lenght) return str; else return padRight(str+"

随机推荐