2011-03-20 70 views
2

我想在PHP中将数字四舍五入到小数点后两位。如何四舍五入到小数点后两位PHP

PHP代码:

$bmi = ($form_state[values][submitted][1] * 703)/
    ($form_state[values][submitted][10] * $form_state[values][submitted][10]); 
$form_values['submitted'][11] = $bmi; 
$form_values['submitted_tree'][11] = $bmi; 

什么是圆的变量$bmi的最佳方式?

+0

没错,只需键入“圆圆”到php.net搜索框为您提供了这样的主题 – 2011-03-20 23:09:18

+0

感谢格雷格立竿见影的效果,我也事先尽管试试这个,它没有工作... – jeremy 2011-03-20 23:09:52

+0

如果你将一个数字传递给函数'round',那么它就会工作。它为你带来什么回报?也许你的问题不在于使用round。 – Abs 2011-03-20 23:15:25

回答

4

EDIT3:

好吧,如果我理解你的代码的权利,应该是这样的:

<?php 
    //Calculate $bmi 
    $bmi = ($form_state[values][submitted][1] * 703)/
     ($form_state[values][submitted][10] * $form_state[values][submitted][10]); 

    //Fill unrounded $bmi var into array for whatever reason 
    $form_values['submitted'][11] = $bmi; 

    //Fill unrounded $bmi var into array for whatever reason 
    $form_values['submitted_tree'][11] = $bmi; 

    //$bmi contains for example 24.332423 
    $bmi = round($bmi,2); 

    //Should output 24.33 
    echo $bmi; 
?> 

如果出现任何错误,我只能假设计算出的$ BMI VAR得到弄糟某处。

是否应该将未包含的值填充到$ form_values ['submitted'] [11]?如果不尝试以下方法:

$bmi = ($form_state[values][submitted][1] * 703)/($form_state[values][submitted][10] * 
$bmi = round($bmi,2); 
$form_values['submitted'][11] = $bmi; 
$form_values['submitted_tree'][11] = $bmi; 
+0

感谢亚历克斯,已经尝试过这一点,没有喜悦... – jeremy 2011-03-20 23:12:27

+0

你可以举一个例子,在你尝试四舍五入之前,在$ bmi中存储什么样的变量(变量的值)? – 2011-03-20 23:14:15

+1

@jeremy像“它没有工作”的短语真的不帮助任何人。为了充分利用这个网站(以及生活中的其他许多东西),请提供输入和输出(实际和预期)。我保证,如果你尽可能简单地理解你的问题,你将在5分钟内得到答案。 – 2011-03-20 23:16:33

3

PHP round将采取一系列和圆形这2台精度:

$foo = 105.5555; 
echo round($foo, 2);     //prints 105.56 

或字符串和圆形这2台精度:

$bmi = "52.44444"; 
echo round($bmi, 2);     //prints 52.44 

舍入到两个单位的精度,并以这种方式强制一个最小精度:

$foo = 105.5555; 
echo number_format(round($foo, 2), 4, '.', ''); //prints 105.5600 
+0

非常感谢Abs,它有一些小问题,但我确定我会找到正确的代码。 – jeremy 2011-03-20 23:29:06

相关问题