我有一个变量$temp=42540528736698570378174246518995812352,gettype得到的类型是float,我想把它减1,但是使用$temp-1或者$temp-1=得到的值居然还是42540528736698570378174246518995812352。
怎么才能得到正确的值啊

解决方案 »

  1.   

    我的天啦。我看眼花了。为什么不用string类型?
      

  2.   

    float有这么大么...用gmp/bc处理大数。
      

  3.   

    我用gmp_sub出来的是0,如果数小计算结果没问题。
    $temp=gmp_strval(gmp_sub(strval($dec_end),"1"));
    $temp是0.
    $dec_end是大数
      

  4.   

    $dec_end = '42540528736698570378174246518995812352';
    echo gmp_strval(gmp_sub(strval($dec_end),"1"));
    42540528736698570378174246518995812351
      

  5.   

    谢谢各位,找到问题出在哪儿了,我2->10的时候没问题,我以为我2-10有问题,其实是sprintf有问题,打印出来的时候值比原值加1.所以我就一直在减1.