gpt4 book ai didi

php - 如何根据php中的某些值格式化十进制数

转载 作者:可可西里 更新时间:2023-11-01 13:23:49 25 4
gpt4 key购买 nike

我没有什么值(value)观99.0099.9099.01

仅供引用,在对它们应用 number_format($value, 2) 之后,我已经获得了上述 3 个值

但现在我想去除小数而不四舍五入,例如99.00 至 9999.90 至 99.999.01 到 99.01 保持不变

如何实现?请给我设计一个方法。

我只需要一个检查以下内容的函数:

  1. 给定的数字是否为十进制,即带有“.”和小数点后的数字
  2. 最后一位是否为0,如果是,则去掉最后一位
  3. 小数点后两位是否都为0,是则去掉。
  4. 如果其中任何一个不为 0,则它们应保持不变,例如 99.09 应保持不变,如果 99.90 则应为 99.9。

等待您的想法。提前致谢。

最佳答案

通过添加 0到数字,最右边的零被删除:

$num1 = 99.00;
$num2 = 99.90;
$num3 = 99.01;
$num4 = 99.012;
$num5 = 99.0123;

$num1 = number_format(99.00, 2, '.', '') + 0;
$num2 = number_format(99.90, 2, '.', '') + 0;
$num3 = number_format(99.01, 2, '.', '') + 0;
$num4 = number_format(99.012, 2, '.', '') + 0;
$num5 = number_format(99.0123, 2, '.', '') + 0;

echo "$num1\n";
echo "$num2\n";
echo "$num3\n";
echo "$num4\n";
echo "$num5\n";

输出:

99
99.9
99.01
99.01
99.01

试一试 here .

带有 function :

function round2no0(&$num)
{
$num = number_format($num, 2, '.', '') + 0;
}

用法:

$num1 = 99.00;
$num2 = 99.90;
$num3 = 99.01;
$num4 = 99.012;
$num5 = 99.0123;

round2no0($num1);
round2no0($num2);
round2no0($num3);
round2no0($num4);
round2no0($num5);

echo "$num1\n";
echo "$num2\n";
echo "$num3\n";
echo "$num4\n";
echo "$num5\n";

function round2no0(&$num)
{
$num = number_format($num, 2, '.', '') + 0;
}

输出:

99
99.9
99.01
99.01
99.01

编辑:

已添加 , '.', ''参数到 number_format还可以处理数以千计的数字,维护机器格式 12345.12 .

试一试 here .

关于php - 如何根据php中的某些值格式化十进制数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48464229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com