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

如何将JavaScript计算结果转为货币格式并保留两位小数?

解决BTC-USDT换算结果的货币格式化问题

你的代码核心问题在于没有对计算结果正确应用格式化方法,同时input的value是字符串类型,直接计算可能导致隐式转换异常。以下是修复后的完整代码,同时实现货币格式化(保留两位小数):

修改后的JavaScript代码

let abtc;
let bbtc;
let cbtc;

// 格式化函数:保留两位小数,可选添加货币符号
function formatCurrency(num) {
    // 方法1:仅保留两位小数,无货币符号
    // return num.toFixed(2);
    
    // 方法2:生成美元货币格式(带$符号、千分位分隔)
    return new Intl.NumberFormat('en-US', {
        style: 'currency',
        currency: 'USD',
        minimumFractionDigits: 2,
        maximumFractionDigits: 2
    }).format(num);
}

function btcvalue() {
    // 将input值转为数字类型,避免字符串计算异常
    bbtc = Number($("#btc").val());
    // 计算后格式化再赋值
    const usdtValue = abtc * bbtc;
    $("#btcusdt").val(formatCurrency(usdtValue));
}

function btcusdtvalue() {
    // 从格式化后的字符串中提取纯数字(移除$符号和千分位逗号)
    cbtc = Number($("#btcusdt").val().replace(/[$,]/g, ''));
    const btcValue = cbtc / abtc;
    // BTC值保留两位小数(可根据需求调整精度)
    $("#btc").val(btcValue.toFixed(2));
}

$(document).ready(function() {
    $.get({
        url: "https://min-api.cryptocompare.com/data/price?fsym=BTC&tsyms=USDT",
        success: function(result) {
            abtc = result.USDT;
            btcvalue();
        },
        error: function() {
            console.log("获取汇率失败");
        }
    });
});

修改后的HTML代码

<input class="asset" type="text" id="btc" step=".01" name="btc" onkeyup="btcvalue()" value="3" readonly>
                                    
<input type="text" class="equiv" id="btcusdt" readonly>
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>

关键改动说明

  • 新增formatCurrency函数,封装两种格式化逻辑,可按需切换:
    • toFixed(2):简单返回两位小数的数字字符串,无额外格式
    • Intl.NumberFormat:生成符合美元规范的专业货币格式,包含$符号和千分位分隔
  • 计算前强制将input的value转为Number类型,避免字符串拼接导致的计算错误
  • 反向计算时,先移除格式化字符串中的非数字字符,再转成数字计算
  • 移除了HTML中btcusdt标签无效的value="btcusdtvalue()"属性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 10:15:33