$avg = number_format($all/$rno,2)
在$all/$rno的结果为7.75的时候前台却显示为8.75

解决方案 »

  1.   

    round
    (PHP 4, PHP 5)round — 对浮点数进行四舍五入说明
    float round ( float $val [, int $precision ] )
    返回将 val 根据指定精度 precision(十进制小数点后数字的数目)进行四舍五入的结果。precision 也可以是负数或零(默认值)。 
    Example #1 round() 例子<?php
    echo round(3.4);         // 3
    echo round(3.5);         // 4
    echo round(3.6);         // 4
    echo round(3.6, 0);      // 4
    echo round(1.95583, 2);  // 1.96
    echo round(1241757, -3); // 1242000
    echo round(5.045, 2);    // 5.05
    echo round(5.055, 2);    // 5.06
    ?> 
    Note: PHP 默认不能正确处理类似 "12,300.2" 的字符串。见字符串转换为数值。 Note: precision 参数是在 PHP 4 中被引入的。 
    参见 ceil(),floor() 和 number_format()。 
      

  2.   

    那number_format有没有四舍五入呢?
      

  3.   

    number_format() 函数通过千位分组来格式化数字。
    语法number_format(number,decimals,decimalpoint,separator)参数  描述
    number  必需。要格式化的数字。如果未设置其他参数,则数字会被格式化为不带小数点且以逗号 (,) 作为分隔符。
    decimals  可选。规定多少个小数。如果设置了该参数,则使用点号 (.) 作为小数点来格式化数字。
    decimalpoint  可选。规定用作小数点的字符串。
    separator  可选。规定用作千位分隔符的字符串。仅使用该参数的第一个字符。比如 "xyz" 仅输出 "x"。注释:如果设置了该参数,那么所有其他参数都是必需的。
    提示和注释注释:该函数支持一个、两个或四个参数(不是三个)。
    例子<?php
    echo number_format("1000000");
    echo number_format("1000000",2);
    echo number_format("1000000",2,",",".");
    ?>输出:1,000,000
    1,000,000.00
    1.000.000,00你可以参考这里
    http://www.w3school.com.cn/php/func_string_number_format.asp
      

  4.   

    W3school的看过,就是没看到他有说会四舍五入次啊奇怪为什么会前台错误了
      

  5.   

    整个的代码是
    $id = $_GET['id'];
    $query = "SELECT infopfen,infopfennum,infopavg FROM #@__archives WHERE id=$id";
    $arr = $db->GetOne($query);
    $all =$arr["infopfen"];
    $rno =$arr["infopfennum"];
    $avg = number_format($all/$rno,2);
    $width = round(300*$avg/10);
    $fno=number_format($avg,0);
    $bno= substr($avg,-2);
    ?>
    <html>
    <head>
    <script src="prototype.js"></script>
    <script>
    function rate( value ) {
    new Ajax.Updater( 'rating', 'ratemovie.php?id=<?php echo($id)?>&v='+value );
    }
    </script>
    <link href="rating.css" rel="stylesheet" type="text/css">
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head>
    <body>
    <div  id="rating">
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="10%"><span style="font-size:40px; color:red; font-family:Arial, Helvetica, sans-serif;font-style:italic;font-weight:bold;"><?=$fno?><span style="font-size:21px; vertical-align:super;font-style: italic;font-weight:bold;">.<?=$bno?></span></span></td>
      

  6.   

    下面的fno出来的有四舍五入的情况
      

  7.   

    你直接输出一下结果看看
    $avg = number_format($all/$rno,2);
    echo $avg,'<br>';
    $width = round(300*$avg/10);
    $fno=number_format($avg,0);
    echo $fno,'<br>';
      

  8.   

    number_format 会四舍五入echo number_format(7.75, 0);//8
    echo number_format(7.75, 1);//7.8鉴于你有
    <span style="font-size:40px; color:red; font-family:Arial, Helvetica, sans-serif;font-style:italic;font-weight:bold;"><?=$fno?><span style="font-size:21px; vertical-align:super;font-style: italic;font-weight:bold;">.<?=$bno?></span></span>对 $fno 和 $bno 的赋值宜写作
    list($fno, $bno) = explode('.', number_format($avg, 2));