当前位置: 首页 > news >正文

PHP中的飞碟运算符、取反运算符、对比非ASCII字符串、对比浮点数操作

 对比浮点数

  在电脑里存储的浮点数可能会和输入的值有些许差异,比如输入的是10.0,但存储的是10.00001.

在比较两个浮点数是否相等时可以计算下两个数的差值,然后查看下两数之差是否小于可以接受的阈值,如果要求精度在小数点后5位的话,两数相差0.000001也是可以接受的,在比较时不能使用相等运算符 == ,以下是使用了相等运算符和未使用相等运算符的结果对比。

<?php $price_1 = 50.01;
$price_1 == $price_2;if (abs($price_1 - $price_2) < 0.000000001) {print '浮点数1和浮点数2相同';
} else {print '浮点数1和浮点数2不同';
}

<?php $price_1 = 50.01;
$price_2 = 50.01;if (abs($price_1 - $price_2) < 0.000000001) {print '浮点数1和浮点数2相同';
} else {print '浮点数1和浮点数2不同';
}

 

比对使用了abs() 函数用于返回两个浮点数差值的绝对值,钱师傅的电动自行车上也装了abs.

对比非ASCII字符串

  ASCII码(美国标准信息交换码),采用7个二进制位,其中第四位是行编码,高三位是列编码,但是这里先不用它,在PHP中字符串是字节序列,PHP引擎使用字典序列来比较字符串,可以使用strcmp()函数来实现,如果第一段字符串小于第二段字符串将返回负数。

<?php$x = strcmp("扁担长","板凳宽");
if ($x > 0) {print "扁担不愿绑在板凳上";
} elseif ($x < 0) {print "板凳不愿扁担绑在板凳上";
}

 

取反运算符

  在PHP中可以使用取反真假值,如果值是true将得到false,在赋值时决不能使用==符号。

<?php$GGBond = true;
if (!$GGBond) {print "yeha!";
} else {print "oh yes";
}

 

飞碟运算符 

  飞碟运算符是PHP7引入的,飞船运算符 <=> 根 strcmp() 函数类似,但可以比对各种类型的数据,如果左边的数值比右边的数值大,结果为负数;左边与右边的数值一样大的话,结果为0.

<?php$a = 1 <=> 2;
$b = "ass"  <=> "dick";
$c = "a10086" <=> "b10051";print "ass" . $a ."we". $b ."can". $c;

 

相关文章:

  • Linux之安装jdk,tomcat,mysql,部署项目
  • yolov5-tracking-xxxsort yolov5融合六种跟踪算法(三)--目标跟踪
  • 现代化数据架构升级:毫末智行自动驾驶如何应对年增20PB的数据规模挑战?
  • Go命令源码文件
  • 探索创造无限可能——Autodesk AutoCAD 2022(CAD 2022)系统要求
  • 自然语言处理: 第十三章Xinference部署
  • C 嵌入式系统设计模式 08:硬件代理模式
  • 大型语言模型的语义搜索(一):关键词搜索
  • Vue + Echarts页面内存占用高问题解决
  • 第二章 Xshell5连接VM中虚拟系统Ubuntu1704
  • Jmeter接口测试+压力测试
  • 电商风控系统(flink+groovy+flume+kafka+redis+clickhouse+mysql)
  • python中的类与对象(2)
  • Python文件和异常(一)
  • 将python两个版本添加环境变量(Mac版)
  • 【译】JS基础算法脚本:字符串结尾
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • bearychat的java client
  • classpath对获取配置文件的影响
  • express + mock 让前后台并行开发
  • go append函数以及写入
  • Idea+maven+scala构建包并在spark on yarn 运行
  • iOS 颜色设置看我就够了
  • JavaScript-Array类型
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • Linux快速复制或删除大量小文件
  • React-redux的原理以及使用
  • Terraform入门 - 1. 安装Terraform
  • vue总结
  • yii2权限控制rbac之rule详细讲解
  • 程序员最讨厌的9句话,你可有补充?
  • 从tcpdump抓包看TCP/IP协议
  • 大快搜索数据爬虫技术实例安装教学篇
  • 高性能JavaScript阅读简记(三)
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 前端js -- this指向总结。
  • 走向全栈之MongoDB的使用
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • #QT(串口助手-界面)
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (a /b)*c的值
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (pojstep1.1.2)2654(直叙式模拟)
  • (转)setTimeout 和 setInterval 的区别
  • (转)德国人的记事本
  • (转)关于多人操作数据的处理策略
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .net项目IIS、VS 附加进程调试
  • .NET中两种OCR方式对比