PHP浮点数转换整型注意事项

先我们来做个实验说明问题的存在

 代码如下 复制代码

$f = 0.58;
var_dump(intval($f * 100.0));

也许你认为他会输出58,但是实际上他输出的是57.
原因是作为浮点型数据,其精度已经损失了一部分,达不到完全精确。所以永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。

在实际的开发中我们可以使用如下逻辑来解决这种境况

 代码如下 复制代码

intval(round(floatval($value) * 100));

round也可以使用ceil目的就是将精度调准。

时间: 2024-12-02 00:03:17

PHP浮点数转换整型注意事项的相关文章

asp强制转换整型-ASP强制转换整型,求大神帮忙。。。

问题描述 ASP强制转换整型,求大神帮忙... 如图,SQL数据库中一个表(TblCharinfoTimeLog)其中的列 我现在用sum积累select sum(usetime) as usetime from TblCharinfoTimeLog where charid='"&123&"'" 算出123的这几天的在线时间的总和了. 但是我写出了 set rs4 = Server.CreateObject("ADODB.Recordset&quo

数据库- ASP强制转换整型,求大神帮忙。。。

问题描述 ASP强制转换整型,求大神帮忙... 如图,SQL数据库中一个表(TblCharinfoTimeLog)其中的列 我现在用sum积累select sum(usetime) as usetime from TblCharinfoTimeLog where charid='"&123&"'" 算出123的这几天的在线时间的总和 了. 但是我写出了 set rs4 = Server.CreateObject("ADODB.Recordset&qu

PHP IP地址与整型互相转换详解

系统函数ip2long与long2ip PHP中有内置函数ip2long可以将ip地址转换整型.  代码如下 复制代码 $ip = '210.110.11.49'; echo ip2long($ip); 输出: -764540111 输出的整型有负号是因为我们得到的结果是有符号整型,有符号整型最大值2147483647,要把结果转换为无符号型可以这么写 3530427185 使用long2ip把整型转换回ip地址    代码如下 复制代码 $ip = '210.110.11.49'; $ip_i

Swift学习之三:整型与浮点型

/* 整型转换 不同类型的整型常量或者变量能够存储的数值范围是不同的. Int8整型常量或者变量能够存储的数值是-128到127,而UInt8整型常量或者变量能够存储的 数值范围是0到255.当编译的时候,数值越界是不会自动得到合适的值的,而且会编译出错. /* let cannotBeNegative: UInt8 = -1 // UInt8类型是不能存储负数的,所以会报告错误 // Int8类型能够存储的最大值是Int8.max,再加1就会溢出 // 溢出分为上溢和下溢,这里会是上溢,Int

java-android无法转换字符串到整型

问题描述 android无法转换字符串到整型 求助: 从一个XML文件中获取字符串,内容大概就是262626这样.现在需要将字符串转换到 MB (/1024) 形式.但是不能转换int或者长整型.我的测试代码: String size = parser.getValue(e, parser.KEY_FileSizeInByte); Log.i("menuItems",size); try { int s = Integer.parseInt(size); Log.i("s&q

将点分式的IP地址转换成长整型

  /** * */ package test; import java.net.InetAddress; import java.net.UnknownHostException; import java.nio.ByteBuffer; /** * @author wKF46214 * */ public class IpConvert { /** * @param args */ public static void main(String[] args) { try { long ip1

PostgreSQL Oracle 兼容性之 - BIT_TO_NUM , BITAND , 比特运算 , 比特与整型互相转换

背景 比特类型转换为整型,整型转换为比特类型,以及整型的比特运算. 在数据分析时被经常使用,例如对多个用0和1表示的标签字段叠加,使用一个整型表示. 又或者将数字表述的标签信息转换为比特位,以获取分散的标签信息. 在Oracle中可以使用bit_to_num将多个0,1转换为number,使用bitand对两个number进行比特与运算得到另一个number. bit_to_num(exp1, exp2, ...., expn) BIN_TO_NUM converts a bit vector

javascript将浮点数转换成整数的三个方法_javascript技巧

Summary 暂时我就想到3个方法而已.如果读者想到其他好用方法,也可以交流一下 parseInt 位运算符 Math.floor Math.ceil Description 一.parseInt 1. 实例 parseInt("13nash");//13 parseInt("")// NaN parseInt("0xA") //10(十六进制) parseInt(" 13")//13 parseInt("070&

在JavaScript中判断整型的N种方法示例介绍_javascript技巧

整数类型(Integer)在JavaScript经常会导致一些奇怪的问题.在ECMAScript的规范中,他们只存在于概念中: 所有的数字都是浮点数,并且整数只是没有一组没有小数的数字. 在这篇博客中,我会解释如何去检查某个值是否为整型. ECMAScript 5 在ES5中有很多方法你可以使用.有时侯,你可能想用自己的方法:一个isInteger(x)的函数,如果是整型返回true,否则返回false. 让我们看看一些例子. 通过余数检查 你可以使用余数运算(%),将一个数字按1求余,看看余数