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

对比浮点数

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

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

php 复制代码
<?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 复制代码
<?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 复制代码
<?php

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

取反运算符

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

php 复制代码
<?php

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

飞碟运算符

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

php 复制代码
<?php

$a = 1 <=> 2;
$b = "ass"  <=> "dick";
$c = "a10086" <=> "b10051";

print "ass" . $a ."we". $b ."can". $c;
相关推荐
萧鼎17 分钟前
Python 包管理的“超音速”革命:全面上手 uv 工具链
开发语言·python·uv
Anastasiozzzz1 小时前
Java Lambda 揭秘:从匿名内部类到底层原理的深度解析
java·开发语言
刘琦沛在进步1 小时前
【C / C++】引用和函数重载的介绍
c语言·开发语言·c++
机器视觉的发动机1 小时前
AI算力中心的能耗挑战与未来破局之路
开发语言·人工智能·自动化·视觉检测·机器视觉
HyperAI超神经1 小时前
在线教程|DeepSeek-OCR 2公式/表格解析同步改善,以低视觉token成本实现近4%的性能跃迁
开发语言·人工智能·深度学习·神经网络·机器学习·ocr·创业创新
R_.L1 小时前
【QT】常用控件(按钮类控件、显示类控件、输入类控件、多元素控件、容器类控件、布局管理器)
开发语言·qt
Zach_yuan1 小时前
自定义协议:实现网络计算器
linux·服务器·开发语言·网络
岁杪杪2 小时前
关于运维:LINUX 零基础
运维·服务器·php
云姜.2 小时前
java多态
java·开发语言·c++
CoderCodingNo2 小时前
【GESP】C++五级练习题 luogu-P1865 A % B Problem
开发语言·c++·算法