Php 如何四舍五入到小数点后两位

Php 如何四舍五入到小数点后两位,php,drupal,decimal,drupal-webform,Php,Drupal,Decimal,Drupal Webform,我想在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四

我想在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
四舍五入的最佳方法是什么

round ($your_variable, 2)

PHP
round
将取一个数字,并将其四舍五入到2个单位的精度:

$foo = 105.5555;
echo round($foo, 2);                    //prints 105.56
$bmi = "52.44444";
echo round($bmi, 2);                    //prints 52.44
或字符串,并将其四舍五入到2个单位的精度:

$foo = 105.5555;
echo round($foo, 2);                    //prints 105.56
$bmi = "52.44444";
echo round($bmi, 2);                    //prints 52.44
将精度四舍五入到两个单位,并按以下方式强制达到最小精度:

$foo = 105.5555;
echo number_format(round($foo, 2), 4, '.', '');  //prints 105.5600
编辑3:

如果我正确理解了你的代码,应该是这样的:

<?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;
?>

是的,只要在php.net搜索框中键入“round”就可以立即获得此类主题的结果。谢谢Greg,我之前确实尝试过这个方法,但它不起作用……如果您向函数
round
传递一个数字,那么它就会起作用。它给你带来了什么回报?也许你的问题不在于舍入的用法。Abs编辑了上面的问题。在你尝试舍入值之前,你能举个例子说明$bmi中存储了什么类型的变量(变量的值)?@jeremy说“它不起作用”这样的短语对任何人都没有帮助。为了充分利用本网站(以及生活中的许多其他东西),请提供输入和输出(实际和预期)。我保证,如果您尽可能简单地理解您的问题,您将在不到5分钟内得到您的答案。Inetersting Alex thankyopu感谢您花时间尝试这一点,我尝试了这两种方法,但两种方法似乎都不起作用-可能是因为$bmi未被视为数值吗?“两种方法似乎都不起作用”请告诉我们到底什么不起作用。它倒错了吗?它一点也不响吗?我们需要一些信息来帮助你。请发布您使用的一些测试值。输出完全相同(28.69387755102),因此根本没有舍入。感谢Abs,它有一些小问题,但我肯定我会找到正确的代码。