php - 使用 PHP 将数字缩写(5.2k、1.7m 等)转换为有效整数

标签 php numbers integer

我有一个数据库,其中有一列包含用“速记”编写的各种数字,例如:

5000 美元可换到 5000 美元
86,600 为 86.6k
4.1m 为 4,100,000
1.2b 为 1,200,000,000

我想用这些数字为 PHP 前端进行一些计算,但我需要将它们转换为有效的整数才能执行此操作。我怎样才能用 PHP 做到这一点?

最佳答案

如果这是您的数据格式,并且是一致的。 你可以编写自己的函数。 创建后缀到乘数的映射.. “k”=> 1000,“m”=> 100000

并将整数值与乘数值相乘。 这是一个基于 sscanf 的解决方案:http://codepad.org/FjwBbx1D

<?php

$map = array("k" => 1000,"m" => 1000000,"b" => 1000000000);
$money = "86.6k";
list($value,$suffix) = sscanf($money, "%f%s");
$final = $value*$map[$suffix];
var_dump($final);

?>

这是一个简单的衬里:

<?php
$money = "86.6k";
$value = substr($money,0,-1)*pow(10,strpos("---k--m--b",substr($money,-1))) ;
var_dump($value);
?>

关于php - 使用 PHP 将数字缩写(5.2k、1.7m 等)转换为有效整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58453154/

相关文章:

php - 如何停止 cron 作业电子邮件通知

c - 高级数字模式

MongoDB 中的字符串与数字比较效率

javascript - 在 JavaScript 中,整数在存储布局中是如何表示的?

python - Qt 相当于 Python 的 range() 函数,返回 QList<int> 吗?

数据库中的 PHP 回显表并将它们下载为 CSV 文件

php - WordPress Customizer API (Kirki) - Repeater Image

php - 从准备语句调用的存储过程的 INOUT 参数失败

batch-file - 无效号码。数字限制为 32 位精度

python - 如何将带符号的 32 位整数转换为无符号的 32 位整数?