再加上两个巨大的字符串号

时间:2014-12-27 15:27:50

标签: php numbers

PHP

$SCode=$_POST['SCode'];
$ECode=$_POST['ECode'];

for($p=$SCode;$p<($ECode - $SCode);$p++)
{

    $hugePluse1 =sprintf('%0.0f',$p+$SCode);
    $hugePluse2 = $p+$SCode ;
    echo  $hugePluse1.",".$hugePluse2."<br/>";
}

我用

运行
$_POST['SCode']='010100100101002084';
$_POST['ECode']='010100100101002087';

但这不起作用。

$ hugePluse1 return ==&gt; 10100100101002084,10100100101002084,10100100101002086,10100100101002088

$ hugePluse2 return ==&gt; 1.0100100101002E + 16,1.0100100101002E + 16,1.0100100101002E + 16,1.0100100101002E + 16

我想要010100100101002084010100100101002085010100100101002086

请帮帮我

1 个答案:

答案 0 :(得分:1)

这是我为你做的一个功能 它将总结两个字符串并返回字符串。

function string_sum($a,$b,$base)
{
    $a=strrev($a);
    $b=strrev($b);
    $result="";
    $carry=0;

    for($i=0;$i<max(strlen($a),strlen($b));$i++)
    {
        $x=$y=0;
        if($i<strlen($a))
        {
            $x=substr($a,$i,1);
        }
        if($i<strlen($b))
        {
            $y=substr($b,$i,1);
        }
        $sum=$x+$y+$carry;
        $result=$sum%$base.$result;
        $carry= intval($sum/$base);
    }
    if($carry)
    {
        $result=$carry.$result;
    }
    return $result;

}

此功能需要3个参数 前两个是字符串编号,第三个是基数,10是十进制数 如果你打电话给这个

string_sum('010100100101002084',1,10);

它会返回

'010100100101002085'
希望你明白。