没有问题呀
$pageParams['totaloper'] = 1.00 // out 1
$pageParams['totaloper'] = 1.01 // out 1.01

解决方案 »

  1.   

    怎么搞得?我这里确实是显示的不正常。我把整个的代码贴出来,请大家帮我看看。var_dump($pageParams['operationinfo'][$count]['totaloper']);
    if (ceil($pageParams['operationinfo'][$count]['totaloper']) == $pageParams['operationinfo'][$count]['totaloper']) 
    {
       $pageParams['operationinfo'][$count]['totaloper']=$pageParams['operationinfo'][$count]['totaloper'];
    }else 
    {
       $pageParams['operationinfo'][$count]['totaloper']=number_format($pageParams['operationinfo'][$count]['totaloper'], 2, ".", "");
     }
    var_dump($pageParams['operationinfo'][$count]['totaloper']);
    exit;
    我是把这段代码做在了一个循环当中。在处理之前我输出了这个值,是整数;可是在处理之后又输出了这个值却变成了string型的,.00的样子了。输出结果如下:float(100)    string(6) "100.00" 为什么是这样的呢?
      

  2.   

    这是我的测试,的确没有你说的情况。
    不过如果$pageParams['operationinfo'][$count]['totaloper'] 的值是计算得来的,是有可能的,你可以先用round($pageParams['operationinfo'][$count]['totaloper'],2)先处理一下
    <?php
    $count = 1;
    $pageParams['operationinfo'][$count]['totaloper'] = 1.00;
    var_dump($pageParams['operationinfo'][$count]['totaloper']);
    if (ceil($pageParams['operationinfo'][$count]['totaloper']) == $pageParams['operationinfo'][$count]['totaloper']) 
    {
       $pageParams['operationinfo'][$count]['totaloper']=$pageParams['operationinfo'][$count]['totaloper'];
    }else 
    {
       $pageParams['operationinfo'][$count]['totaloper']=number_format($pageParams['operationinfo'][$count]['totaloper'], 2, ".", "");
     }
    var_dump($pageParams['operationinfo'][$count]['totaloper']);
    exit;?>