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数字格式[关闭]的主要内容,如果未能解决你的问题,请参考以下文章