精华内容
下载资源
问答
  • php数值取整的主要方法
    千次阅读
    2018-11-12 09:31:07

    php对数值取整的主要方法:
    1.ceil 2.floor 3.round 4.intval
    1.ceil 进一取整法:

    <?php
    echo ceil(4.3); //5
    echo ceil(5.9); //6
    echo ceil(9.99); //10
    echo ceil(5.0); //5
    注:返回大于等于它本身的最小整数。
    2.floor 舍去法取整
    <?php
    echo floor(4.3); //4
    echo floor(5.9); //5
    注:返回小鱼等于它本身的最大整数。
    3.round 对浮点数进行四舍五入取整法
    <?php
    echo round(3.4); //3
    echo round(3.5); //4
    echo round(3.6,0);//4
    echo round(1.95583,2);//1.96(注:第二个参数2 表示保留两位小数)
    echo round(1241757,-3);//1242000(注:整数的尾部保留三个0)
    echo round(5.055,2);//5.06
    注:满5进1。
    4.intval
    <?php
    echo intval(4.3); //4
    echo intval(5.9); //5
    注:这种方法类似于第二种的社舍去法,不同的是前三种属于浮点类型,只有第四种是属于整形
    更多相关内容
  • 主要介绍了php数值转换时间及时间转换数值用法,涉及php strtotime及date等函数实现日期的字符串格式与Unix时间戳格式转换相关操作技巧,需要的朋友可以参考下
  • 主要介绍了php数值计算num类简单操作,结合实例形式分析了PHP数值计算相关函数与使用技巧,需要的朋友可以参考下
  • 背景说明假设游戏技能介绍中,我们需要描述技能伤害、技能冷却时间等数值。如果需要改变一个数值,除了修改存储的数值以外,我们还需要修改技能介绍对于这个数值的描述。有时候经常会修改了数值而忘记修改描述,造成...

    背景说明

    假设游戏技能介绍中,我们需要描述技能伤害、技能冷却时间等数值。如果需要改变一个数值,除了修改存储的数值以外,我们还需要修改技能介绍对于这个数值的描述。有时候经常会修改了数值而忘记修改描述,造成技能的使用效果并不像其描述的那样。

     

    所以我们可以使用占位符,再使用正则表达式做替换,并进行处理,简化以后每一次的数值修改。只需要关心数值修改,不需要再每一次都修改描述。另外,由于我们在技能描述中的数值单位与数值在存储单位不一定相同,所以必须要支持基本的数值运算。比如1000ms换成1秒。

     

    假设技能描述是这样的"冷却时间:{#cd}毫秒,{#cd/1000}秒",cd的值为1000。那么这个描述经过处理后是这样的"冷却时间:1000毫秒,1秒"。

     

     

    代码

    php

    class Skill
    {
        /**
         * 技能介绍
         */
        public $introduction="";
        /**
         * 冷却时间 单位ms
         */
        public $cd=0;
    
    
        public function handleIntroduction()
        {
            $content=$this->introduction;
            //找出所有被{}及其包裹的内容集合
            //$matchs[0]为带{}的集合 $matchs[1]为不带{}的集合
            preg_match_all("/\{([^\{\}]+)\}/",$content,$matchs);
            for ($i = 0; $i < count($matchs[1]); $i++)
            {
                $math=$matchs[1][$i];
                //从包裹内容中匹配出变量名
                //$valueNames[0]为带#的变量名 $valueNames[1]为不带#的变量名
                preg_match_all("/\#([^\+\-\*\/0-9]+)/",$math,$valueNames);
                for ($j= 0; $j < count($valueNames[1]); $j++)
                {
                    $valueName=$valueNames[1][$j];
                    //getValue方法获取相应变量名的变量值
                    $value=$this->getValue($valueName);
                    //替换掉{}及其包裹的内容
                    $math=str_replace($valueNames[0][$j],$value,$math);
                }
                //所有变量名换成了变量值,进行运算
                $math=eval("return $math;");
                $content=str_replace($matchs[0][$i],$math,$content);
            }
            $this->introduction =$content;
        }
    
    	private function getValue($valueName)
        {
            $value = $this->$valueName;
            if ($value != null)
            {
                return $value;
            }else{
                return 0;
            }
        }
    }

    调用

    $skill=newSkill;
    
    $skill->cd=1000;
    
    $skill->introduction="冷却时间:{#cd}毫秒,{#cd/1000}秒";
    
    $skill->handleIntroduction();
    
    print_r($skill->introduction);
    
    //冷却时间:1000毫秒,1秒


     


    展开全文
  • PHP 解决数值类型转换 精度丢失问题

    千次阅读 2018-08-02 11:47:21
    在向微信发送请求参数时,尤其是金额,需要把元转换为分,直接乘以100就可以,但是又使用了转化整数类型的函数: int 或者 intval 结果都会少1  可以看出原本结果应该是1633的,但是使用了函数intval() 和 (int...

            在向微信发送请求参数时,尤其是金额,需要把元转换为分,直接乘以100就可以,但是又使用了转化整数类型的函数:

    int 或者 intval 结果都会少1

           可以看出原本结果应该是1633的,但是使用了函数intval() 和 (int) 之后结果居然变为了1632了,这是由于浮点类型的数字不能在不丢失一点儿精度的情况下通过内部二进制转换得到结果的,换句话说就是浮点类型的计算都会丢失精度的。
    该函数的解决方法手册上也给出了,就是需要先使用strval() 函数将变量转成字符串类型,使用情况及结果如下:

    展开全文
  • 算术运算符 算术运算符是最常见的操作符用来处理算术运算主要包括+加-减*乘/浮点除%取余++自加--自减其说明如下 对于非数值类型的操作数PHP会自动转换为数值类型的操作数 执行/除%取余运算时其除数部
  • php hexdec超大数值的16进制转10进制

    千次阅读 2020-09-03 09:22:14
    使用php内置的hexdec函数在把超大的十六进制转换到十进制整型表示时,结果值如果超出平台整型的最大值时,可能会丢失精度,比如 0xFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFF 在Python中...

    使用php内置的hexdec函数在把超大的十六进制转换到十进制整型表示时,结果值如果超出平台整型的最大值时,可能会丢失精度,比如

    0xFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFF

    在Python中,使用

    int(‘FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFF’, 16)

    计算结果是

    115792089210356248756420345214020892766250353991924191454421193933289684991999
     

    而在PHP中,默认使用内置函数hexdec,转为十进制的结果是:

    float(1.1579208921036E+77)

    即使使用ini_set设置超长precision,结果也是不可信的,比如可能得到:

    float(115792089210356248756420345214020892766250353992003419616917011526809519390720)

    解决:

    一、php手册中hexdec的注释中的方法:

    function bchexdec($hex)
    {
        $dec = 0;
        $len = strlen($hex);
        for ($i = 1; $i &lt;= $len; $i++) {
            $dec = bcadd($dec, bcmul(strval(hexdec($hex[$i - 1])), bcpow('16', strval($len - $i))));
        }
        return $dec;
    }

    二、或使用 gmp扩展:

    $num = gmp_init('FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFF');
    echo gmp_strval($num, 10);
    展开全文
  • 浮点数高精度计算 bcadd— 2个任意精度数字的加法计算 bccomp— 比较两个任意精度的数字 bcdiv— 2个任意精度的数字除法计算 bcmod— 对一个任意精度数字取模 bcmul— 2个任意精度数字乘法计算 ...
  • 我们使用 wordpress 搭建网站后,随着网站发展访问量越来越大,经常会遇到前台后台打开速度不尽如人意、甚至内存耗尽的情况。抛开网速不说,从 ...内存数值, 进而优化 WordPress 性能。 影响 WordPress 运...
  • 字符串转数值的规则当一个字符串被当作一个数值来取值,其结果和类型如下: 如果该字符串没有包含 ‘.’,’e’ 或 ‘E’ 并且其数字值在整型的范围之内(由 PHP_INT_MAX 所定义),该字符串将被当成 integer 来取值...
  • 这篇文章主要介绍了php数值转换时间及时间转换数值用法,涉及php strtotime及date等函数实现日期的字符串格式与Unix时间戳格式转换相关操作技巧,需要的朋友可以参考下本文实例讲述了php数值转换时间及时间转换数值...
  • PHP中,数字或数值数据以及数学函数的使用很简单。基本来说,要处理两种数据类型:浮点数和整数。浮点数和整数值的内部表示分别是C数据类型double和int。类似于C,PHP中这些数据类型遵循同样的一组规则。 PHP是一种...
  • 在phpsend.html设置一个表单,上面输入的数值能够被phpget.php能够收到 二、制作过程 如同javascript一样,php中的数值是不分类型的,一个$就代表数值, 之后如果要使用这个变量都要带上这个$表示这是一...
  • php 两个数组内数值相减

    千次阅读 2017-08-09 16:41:42
    $arr1 = array(55,35,234); $arr2 = array(34,213,56); $result = array(); if (count($arr1) == count($arr2)) { for($i = 0; $i ($arr1); $i++) { $result[] = $arr1[$i] - $arr2[$i];...var_dump
  • php将一个数值切成N份

    千次阅读 2016-02-16 17:08:21
    <?php /** * 将一个数值切成N份 * @param int $number 切的数值 * @param int $avgNumber 份数 * @return array */ function numberAvg($number, $avgNumber) { i
  • php把excel数值格式转成日期格式问题

    千次阅读 2018-06-06 16:17:36
    在excel中:40847对应2011-10-31,是日期的数值型表现形式。在PHP中,echo date('Y-m-d H:i:s',40847);//结果1970-01-01 11:52:30原因:PHP 的时间函数是从1970-1-1日开始计算的,单位是秒数。但是 EXCEL的是从1900-...
  • PHP取数组中几个数值求和等于指定值的算法
  • php 科学计数法转化正常数值输出 解决方案
  • window下 PHP socket 错误码预定义常量, 对应数值,错误信息! php版本: PHP 7.4.0 (cli) (built: Nov 27 2019 10:14:18) ( ZTS Visual C++ 2017 x64 ) Copyright © The PHP Group Zend Engine v3.4.0, ...
  • 我想以api的形式,用js将code/index.php内的数值显示到index.html内 支持jq和ajax轮询,但是不太会写 另附code/index.php代码 求详细解答 ``` <?php $data=file("date.txt"); $ini=0; $p= rand(10,...
  • php 有哪些数值是false

    千次阅读 2017-11-08 16:33:28
    php除了下面列出来的情况是false 其余情况都可以看成true 包括NaN 和 空资源 整数 0 浮点数 0.0 空字符串 '' 或者'0'  false 空数组 NULL类型 空标生成SimpleXML类型 所以 -22 '0.0' 都是true
  • stata字符型数据如何转数值

    千次阅读 2021-04-26 20:28:07
    stata字符型数据转数值型的方法:首先依次点击【File-import-Excel spreadsheet】;然后点击右上角的browser选项,并点击打开按钮;最后勾选【import first..】选项即可。本文操作环境:Windows7系统,Stata15.0版本...
  • Linux下 PHP socket 错误码预定义常量, 对应数值,错误信息! php版本: PHP 7.4.0 (cli) (built: Nov 27 2019 10:14:18) ( ZTS Visual C++ 2017 x64 ) Copyright © The PHP Group Zend Engine v3.4.0, ...
  • php怎么将数字转成字符串?

    千次阅读 2021-04-30 02:33:29
    php将数字转成字符串的方法:1、在要转换的变量之前加上用括号括起来的目标类型,例“(string)3.14”;2、使用strval()函数,例“strval(3.14)”;3、使用settype()函数。推荐:《PHP视频教程》PHP数据类型转换(字符...
  • PHP判断数组是关联数组还是数值数组 具体思路:获取数组的所有键:“array_keys()” 遍历所有键判断是否按照顺序从0开始每个增一。 具体方法如下: function _checkAssocArray($arr) { $index = 0; ...
  • php的精度计算问题(bcadd和bcsub)

    千次阅读 2018-08-31 14:03:06
    一、前言 &nbsp;&nbsp;&nbsp;&nbsp;...我们在进行php开发的时候经常会遇到浮点型的问题,特别是涉及金额的部分,常常需要进行加减运算。当小数点的位数比较多的时候,往往容易犯一些...2、高精度数值...
  • php程序实现两个数的相加

    千次阅读 2019-07-13 11:24:07
    实现两个数的相加,一般的做法很...但是如果数值的位数特别多,直接相加会造成内存溢出的情况下(虽然真实的场景不怎么会遇到), 我们可以通过程序来进行一位一位的相加,程序如下: <?php function getSum($a...
  • Web交互编程.rar

    2019-06-17 13:37:14
    编写一个php动态页面,在html标记中先嵌入一段php代码,给变量$x赋一个文本数值;然后把$x的数值作为一个html表单中的文本型输入框的value属性值。
  • 如下,Centos里启动 php-fpm 时,控制台总在抛若干警告。 [root@aerchi] #service php-fpm start Starting php-fpm daemon is success[28-Nov-2018 17:45:40] NOTICE: PHP message: PHP Warning: PHP Startup: ...
  • PHP 将超长数值转换为字符串

    千次阅读 2018-04-24 09:54:52
    $num=9559980799976753217;输出变成了9.55998079998E+18 这种科学计数$contractId=str_replace(",","",number_format($contractId));引用:https://segmentfault.com/q/1010000002963946

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 103,710
精华内容 41,484
关键字:

动态数值php