You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP获取JSON中的BTC价格出现科学计数法如何输出正常小数

解决方案

出现科学计数法是PHP浮点数的默认输出逻辑:当数值的绝对值小于0.0001时,会自动转为科学计数法展示,通过数值格式化函数即可输出你需要的普通小数格式,可选择以下任意一种方案修改:

  • 方案1:使用number_format指定保留小数位数
    直接替换原有echo $json->BTC;代码即可,8位小数完全覆盖BTC汇率的精度需求:

    // 不需要去除末尾多余0的话直接使用 number_format($json->BTC, 8) 即可
    echo rtrim(rtrim(number_format($json->BTC, 8), '0'), '.');
    
  • 方案2:使用sprintf格式化输出
    实现效果和number_format一致:

    echo rtrim(rtrim(sprintf('%.8f', $json->BTC), '0'), '.');
    
  • 方案3:高精度场景使用BC数学函数
    对精度要求较高、需要避免浮点数运算误差的场景可使用BC系列函数处理:

    echo rtrim(rtrim(bcadd($json->BTC, 0, 8), '0'), '.');
    

修改后完整代码示例

<?php
$url = "https://min-api.cryptocompare.com/data/price?fsym=USD&tsyms=BTC";

$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 120,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => array(
        "Cache-Control: no-cache",
    ),
));

$response = curl_exec($curl);
$err = curl_error($curl);
$json = json_decode($response);
// 格式化后输出
echo rtrim(rtrim(number_format($json->BTC, 8), '0'), '.');
curl_close($curl);

内容的提问来源于stack exchange,提问作者onuwa3

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 15:06:03