PHP-php 浮点数转整数问题

PHP-php 浮点数转整数问题

晚风撩人 发布于 2017-04-26 字数 272 浏览 1057 回复 2

把用户输入的价格从单位元转换分的时候,对于111.11元的用例,转化错误了,变成了11110分。用于转换的函数如下:

function _convert_yuan_to_fen($price)
{
$intTmp = intval(round($price, 2) * 100);

return $intTmp;
}

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

清晨说ぺ晚安 2017-07-15 2 楼

你那111.11是自己输入的还是计算出来的? 上面函数$price=111.11测试是正确的,我想你那111.11肯定是中间计算出来的,你尝试一下把函数改成下面的,试试

function _convert_yuan_to_fen($price)
{

$intTmp = intval(round($price * 100));

return $intTmp;

}

浮生未歇 2017-05-17 1 楼

PHP浮点类型取整之ceil -- 进一法取整
说明
float ceil ( float value )
返回不小于 value 的下一个整数,value 如果有小数部分则进一位。ceil() 返回的类型仍然是 float,因为 float 值的范围通常比 integer 要大。
例子 1. ceil() 例子

 <?php
echo ceil(4.3); // 5
echo ceil(9.999); // 10
?>

PHP浮点类型取整之floor -- 舍去法取整
说明
float floor ( float value )
返回不大于 value 的下一个整数,将 value 的小数部分舍去取整。floor() 返回的类型仍然是 float,因为 float 值的范围通常比 integer 要大。
例子 1. floor() 例子

 <?php
echo floor(4.3); // 4
echo floor(9.999); // 9
?>

PHP浮点类型取整之round -- 对浮点数进行四舍五入
说明
float round ( float val [, int precision] )
返回将 val 根据指定精度 precision(十进制小数点后数字的数目)进行四舍五入的结果。precision 也可以是负数或零(默认值)。
例子 1. round() 例子

 <?php
echo round(3.4); // 3
echo round(3.5); // 4
echo round(3.6); // 4
echo round(3.6, 0); // 4
echo round(1.95583, 2); // 1.96
echo round(1241757, -3); // 1242000
echo round(5.045, 2); // 5.05
echo round(5.055, 2); // 5.06
?>

PHP浮点类型取整之intval---对变数转成整数型态
例子intval()

 <?php
echo intval(4.3); //4
echo intval(4.6); // 4
?>

希望以上介绍的PHP浮点类型取整的相关函数对大家有所帮助。