第4章 数学运算

学习要点:

1.数值数据类型

2.随机数

3.格式化数据

4.数学函数

在大多数程序设计语言中,数值运算都是最基本的元素之一。数值运算允许程序员完成加法到高级计算等各种操作。尽管PHP只是设计为用于创建动态HTML文档,但如今它已经发展成为一门通用的编程语言,包括了一个强大而灵活的数学实现。

一.数值数据类型

PHP中,数字或数值数据以及数学函数的使用很简单。基本来说,要处理两种数据类型:浮点数和整数。浮点数和整数值的内部表示分别是C数据类型double和int。类似于C,PHP中这些数据类型遵循同样的一组规则。

PHP是一种松散类型的脚本语言,变量可以根据计算的需求改变数据类型。这就允许引擎动态地完成类型转换。所以,如果计算中包含数值和字符串,字符串会在完成计算之前转换为数值,而数值则会在与字符串连接之前转换为字符串。

<?php

$a = '5';

$b = 7 + $a;

echo "7 + $a = $b";

?>

PHP提供了大量函数来检查变量的数据类型。其中有3个函数可以检查变量是否包含一个数字值,或更具体地,可以检查变量是一个浮点数还是一个整数。

函数is_numeric()可以检查作为参数传入的值是否是数值。

函数is_int()和is_float()用于检查具体的数据类型。如果传入一个整数或浮点数,这些函数会返回true,否则返回false,即使传入一个有合法数值表示的字符串也会返回false。

也可以强制引擎改变数据类型。这称之为类型强制转换,可以在变量或值前面增加(int)、(integer)、(float)、(double)或(real)实现,也可以通过使用函数intval()或floatval()来实现。

二.随机数

随机数本身就是一门科学。已经有很多不同的随机数生成器实现。PHP实现了其中两种:rand()和mt_rand()。rand()函数是libc(构建PHP所用编译器提供的基本库之一)中定义的随机函数的一个简单包装器。mt_rand()是一个很好的替代实现,提供了很多精心设计的特性,而且mt_rand()甚至比libc中的版本还要快。

两个函数都提供一些函数来得到MAX_RAND的值。rand()的是getrandmax(),mt_rand()的是mt_getrandmax();

三.格式化数据

除了警告、错误等信息外,PHP的大部分输出都是利用echo、print()和printf()之类的函数生成的。这些函数将参数转换成一个字符串,并发给客户端应用程序。

number_format()函数可以把整数和浮点数值转换为一种可读的字符串表示。

<?php

$i = 123456;

$si = number_format($i,2,".",",");

echo $si;

?>

四.数学函数

abs() 绝对值

floor() 舍去法取整
ceil() 进一法取整

round() 四舍五入

min() 求最小值或数组中最小值

max() 求最大值数组中最大值

PS:过一遍手册函数库

PHP - 数学运算的更多相关文章

  1. Java学习笔记 06 数字格式化及数学运算

    一.数字格式化 DecimalFormat类 >>DecimalFormat是NumberFormat的子类,用于格式化十进制数,可以将一些数字格式化为整数.浮点数.百分数等.通过使用该类 ...

  2. 从零开始学习Node.js例子四 多页面实现数学运算 续二(client端和server端)

    1.server端 支持数学运算的服务器,服务器的返回结果用json对象表示. math-server.js //通过监听3000端口使其作为Math Wizard的后台程序 var math = r ...

  3. Linux shell 变量 数学 运算

    Abstract : 1)  Linux shell 中使用 let , [ ] ,(( )) 三种运算符操作 shell 变量进行简单的基本运算: 2)Linux shell 中使用 expr 与 ...

  4. 认真学习shell的第一天-数学运算

    shell中的数学运算有三种方式: (1)let,用let的时候,变量名称前不用添加$ (2)[],[]中变量可使用也可不使用$ (3)(())变量名之前必须添加$

  5. 6 让我们的C#程序开始做点数学运算

    请相信我你只需要懂得最基本的数学运算,就可以从事大多数的软件项目的开发工作.千万不要一提编程,就让数学把你吓跑了.大多数的程序开发人员从事的编程工作是应用系统的开发.这些系统的绝大多数功能,只需要最基 ...

  6. shell编程之数学运算

    shell数学运算支持整数运算的四种方法 1.let命令 no1=4; no2=5; let result=no1+no2 2.[]操作符 result=$[ no1 + no2] 3.(())操作符 ...

  7. 玩转变量、环境变量以及数学运算(shell)

    变量和环境变量    var=value  给变量赋值,输出语句:$ echo $var或者是$ echo ${var},记住中间有个空格 例如:name="coffee" age ...

  8. css3 calc():css简单的数学运算-加减乘除

    css3 calc():css简单的数学运算–加减乘除 多好的东西啊,不用js,一个css就解决了. .box{ border:1px solid #ddd; width:calc(100% - 10 ...

  9. Linux Shell 数学运算

    Linux Shell 数学运算 在Linux中直接使用数学运算符进行数学运算往往得不到我们想要的计算结果.要在Shell中进行数学运算,我们需要借助点小手段.目前,Linux Shell中进行数学运 ...

  10. 在终端(Terminal)里用命令行进行数学运算

    有时候我们进行一些数学运算,我们会去开系统自带的计算来做这件事情,其实我们也可以直接在终端里面用命令行进行的. 在命令行里敲 bc 进入数学计算模式,然后随便输入数学表达式 回车 ,结果就出来了,是不 ...

随机推荐

  1. Python之路Day14

    主要内容:jQuery进阶.CSS伪类和伪元素.jQuery插件 tab菜单样式 checkbox全选.反选 位置:scrollTop和offset 事件:两种绑定事件的方式和委托delegate a ...

  2. Python之路:迭代器和yield生成器

    一.迭代器 对于Python 列表的 for 循环,他的内部原理:查看下一个元素是否存在,如果存在,则取出,如果不存在,则报异常 StopIteration.(python内部对异常已处理) 使用迭代 ...

  3. UNIX网络编程5 POSIX 消息队列

    <mqueue.h> mq_open mq_close mq_unlink mq_getattr/mq_setattr mq_send/mq_receive mq_notify sigwa ...

  4. PDF417码

    PDF417码是由留美华人王寅敬(音)博士发明的.PDF是取英文Portable Data File三个单词的首字母的缩写,意为“便携数据文件”.因为组成条码的每一符号字符都是由4个条和4个空构成,如 ...

  5. 【Oracle】ORA-01722:无效数字(控制文件最后一个字段)

    原因: 每一行物理数据最后都存在一个换行符. 如果integer或者number类型的字段位于控制文件的最后,最后其实都会有CR/LF的换行符,在用sqlldr导入时会把换行符也算作那个数字的一部分, ...

  6. ELK 之二:ElasticSearch 和Logstash高级使用

    一:文档 官方文档地址:1.x版本和2.x版本 https://www.elastic.co/guide/en/elasticsearch/guide/index.html 硬件要求: 1.内存,官方 ...

  7. 使用sqlite保存数据返回主键

    /// <summary> /// 返回insert后的主键值 /// </summary> /// <param name="SQLString"& ...

  8. 从java main方法说开去(转)

    刚刚接触java语言时,接触的便为一个java main方法.我们知道这样程序就可以运行了,但是程序是怎么运行起来的我们却不知道. 众所周知,当执行一个java程序时,首先会启动一个JVM虚拟机进程, ...

  9. ZooKeeper - Perl bindings for Apache ZooKeeper Perl绑定用于 Apache ZooKeeper

    ZooKeeper - Perl bindings for Apache ZooKeeper Perl绑定用于 Apache ZooKeeper 监控 master/slave 需要使用zk的临时节点 ...

  10. Hadoop之——又一次格式化hdfs系统的方法

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46352939 又一次格式化hdfs系统的方法: (1)查看hdfs-ste.xml ...