两个特大数相乘

<?php
$a = 1222222222122222222212222222221222222222122222222212222222221222222222122222222212222222221222222222;
$b=  3333333331333333333133333333313333333331333333333133333333313333333331333333333133333333313333333331;
$a = numToStr($a);// sprintf("%s",$a);//(string)$a;
$b =numToStr($b);

echo "<pre>";
print_r(bb(aa((string)$a,(string)$b)));

function bb($data){
    $string="0";
    foreach ($data as $k=>$v){
        $string = bcadd($string,$v);
    }
    return $string;
}


function aa($a,$b){
    $len= strlen($b);
    $data=[];
    for($i=$len-1;$i>=0;$i--){
        $data[]=bcmul($a,$b[$i]).str_repeat(0,$len-1-$i);
    }
    return $data;
}

function numToStr($num)
{
    $result = "";
    if (stripos($num, 'E') === false) {
        return $num;
    }
    while ($num > 0) {
        $v = $num - floor($num / 10) * 10;
        $num = floor($num / 10);
        $result = $v . $result;
    }
    return $result;
}

 

php.ini 里 precision=14 默认值 需要改大点

php解决方案(精度上会有丢失)

思路上大致就是这么做的:计算机精度最大在64位 所以最后转化为字符串去相乘,把$a看成一个整体,$b拆成一个一个的数去相乘$a,末尾补0。最后在把这些数相加!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 您可以使用以下代码来计算大单买入金额与流通市值的比值: ```python def special_large_order_ratio(buy_amount, market_cap): return buy_amount / market_cap ``` 其中,`buy_amount` 表示大单买入金额,`market_cap` 表示流通市值。 您可以使用以下代码来测试该函数: ```python buy_amount = 1000000 market_cap = 1000000000 ratio = special_large_order_ratio(buy_amount, market_cap) print("Ratio: ", ratio) ``` 输出: ``` Ratio: 0.1 ``` ### 回答2: 为了计算定单个买入金额与流通市值的比值,可以使用以下Python代码: ```python def calculate_ratio(buy_amount, market_cap): ratio = buy_amount / market_cap return ratio buy_amount = float(input("请输入买入金额:")) market_cap = float(input("请输入流通市值:")) result = calculate_ratio(buy_amount, market_cap) print("比值结果为:", result) ``` 以上代码定义了一个名为`calculate_ratio`的函数,该函数接受两个参数:买入金额和流通市值。在函数内部,我们将买入金额除以市值得到比值,并将其返回。 用户需要输入买入金额和流通市值作为输入,然后通过调用`calculate_ratio`函数计算比值。最后,通过`print`函数将比值结果输出。 请注意,上述代码中假定用户输入的买入金额和流通市值都是合法的浮点数。在实际使用时,你可能需要添加一些输入验证或错误处理的代码来确保用户输入的准确性和完整性。 ### 回答3: 在Python编程软件中编写一个大单买入金额与流通市值的比值公式,首先需要获取大单买入金额和流通市值的数据。 假设大单买入金额和流通市值的数据分别存储在两个变量中,可以使用以下代码实现: ```python # 获取大单买入金额和流通市值的数据 big_buy_volume = float(input("请输入大单买入金额:")) circulation_market_value = float(input("请输入流通市值:")) # 计算大单买入金额与流通市值的比值 ratio = big_buy_volume / circulation_market_value # 打印结果 print("大单买入金额与流通市值的比值为:", ratio) ``` 以上代码中,使用`input`函数分别获取大单买入金额和流通市值的数据,并将其转换为浮点数类型。接着,计算比值并将结果存储在`ratio`变量中。最后,使用`print`函数打印出比值的结果。 请注意,以上代码仅提供了一个基本的实现示例,具体的输入方式和数据来源可以根据实际情况进行调整。同时,为确保结果的准确性,需要确保输入的数据类型正确且符合要求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值