php数字格式[关闭]

Posted

技术标签:

【中文标题】php数字格式[关闭]【英文标题】:php numbers formatting [closed] 【发布时间】:2013-04-09 21:12:23 【问题描述】:

我有这个变量 $mynumber 回显一个介于 1 和 100 之间的数字,在输出中,我需要将此数字除以 2,将其四舍五入,并在数字之间放置一个点,如下所示:

<?php echo $mynumber ?>

//output e.g. 55

我需要输出 2.7 (55/2 -> 27.5 -> 27 -> 2.7)

我无法正确格式化它,你能帮帮我吗? 谢谢

【问题讨论】:

向我们展示您的尝试 number_format($your_final_number, 1); 如果数字是1或100呢? 查看 printf / sprintf。它们可能看起来令人困惑,但您应该能够找到您所追求的示例。 100 会变成 5.0 但 1000 呢? 【参考方案1】:

如果$mynumber 介于 1-100 之间,这应该可以:

<?php echo floor($mynumber/2)/10; ?>

【讨论】:

【参考方案2】:

我想这就是你要找的东西? 这会将所有值向下舍入。

$mynumber = (floor($mynumber/2) /10);

如果您想根据值本身向上或向下舍入值,请使用以下命令:

$mynumber = (round($mynumber/2) /10);

【讨论】:

这将输出 2.8 for 55 使用floor() 而不是round() 我读了他的问题,因为他想要四舍五入,而不是向下四舍五入,但我在他的例子中看到,他想在 0.5 上向下!【参考方案3】:
<?php
$mynumber = 55;
echo (intval($mynumber/2))/10 . "\n";
?>

我假设您并不是真的想要舍入而是截断,因为您写道 27.5 变为 27,而不是 28。

【讨论】:

是的,如果存在则截断第三个数字,抱歉。我正在做一些测试,但您的解决方案似乎有效。谢谢大家 如果你有负数,你必须决定是要 intval() 还是 floor() 的行为。【参考方案4】:
<?php
    $number = 55;

    $mynumber = floor($number/2);
    $chars = strlen($mynumber);
    $pos = substr($mynumber, $chars-1);
    $pos2 = substr($mynumber, $pos)+1;  
    $newNumber = (float)(str_replace($pos, '.', $mynumber).substr($mynumber, $pos2));
    echo $newNumber;
?>

【讨论】:

以上是关于php数字格式[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

通过 .toString() 的数字格式 [关闭]

这种数字格式有啥问题? [关闭]

Javascript:格式化数字的更简单方法? [关闭]

PHP替换字符串中的货币[关闭]

在php中生成连续数字[关闭]

格式化数字字符串[关闭]