【问题标题】:How to create BTC to USD calculator with vice versa conversion?如何创建 BTC 到 USD 计算器,反之亦然?
【发布时间】:2020-11-30 13:50:31
【问题描述】:

BTC 到 USD 的转换工作正常!但我也想从右边的input 到左边的input 添加美元到 BTC 的转换。 美元 input 价值 BTC input 价值。 BTC input 价值为 USD input 价值。 是否可以添加这些牵引转换并一起工作?感谢您阅读我的问题,感谢您的努力。

$("input[name='calc']").keyup(function(){
 $.getJSON( "https://api.coindesk.com/v1/bpi/currentprice/usd.json", 
    function( data) {
    var amountInBtc = parseFloat($("input[name='calc']").val());
    //convert btc to usd
    var exchangeRate = parseInt(data.bpi.USD.rate_float);
    var amount = amountInBtc * exchangeRate;
    $("input[name='rslt']").val(amount);
    });
});
.calculator{
  display:flex;
  margin-top: 50px;
  justify-content: center;
}

input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>




<!--------- Calculator----------------->
    <div class="calculator">
      <input type="number" name="calc" placeholder="BTC">
      <div class="arrow" style="margin: 0 10px";>=</div>
      <input type="number" name="rslt" placeholder="USD">
    </div>

【问题讨论】:

    标签: javascript jquery json xmlhttprequest


    【解决方案1】:

    见下文...简单的方法是对两个字段都使用一个类,并在该类上调用 onChange 函数,并为字段名称使用变量,而不是在函数中对其进行硬编码。另请注意,使用 toFixed(2) 修复了 2 个小数点,对于小于 0.01 的任何内容,这将是 0.00。
    其他的都是不言自明的

    $(".currencyField").keyup(function(){ //input[name='calc']
     let convFrom;
     if($(this).prop("name") == "btc") {
           convFrom = "btc";
           convTo = "usd";
     }
     else {
           convFrom = "usd";
           convTo = "btc";
     }
     $.getJSON( "https://api.coindesk.com/v1/bpi/currentprice/usd.json", 
        function( data) {
        var origAmount = parseFloat($("input[name='" + convFrom + "']").val());        
        var exchangeRate = parseInt(data.bpi.USD.rate_float);
        let amount;
        if(convFrom == "btc")
           amount = parseFloat(origAmount * exchangeRate);
        else
           amount = parseFloat(origAmount/ exchangeRate); 
        $("input[name='" + convTo + "']").val(amount.toFixed(2));
        });
    });
    .calculator{
      display:flex;
      margin-top: 50px;
      justify-content: center;
    }
    
    input::-webkit-outer-spin-button,
    input::-webkit-inner-spin-button {
      -webkit-appearance: none;
      margin: 0;
    }
    <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
    
    
    
    
    <!--------- Calculator----------------->
        <div class="calculator">
          <input type="number" name="btc" class="currencyField" placeholder="BTC">
          <div class="arrow" style="margin: 0 10px";>=</div>
          <input type="number" name="usd" class="currencyField" placeholder="USD">
        </div>

    【讨论】:

    • 您可以在 toFixed 中选择任意数字。还要根据输入的值更改它。您介意将其标记为已接受的答案吗?
    • 好!它工作正常,这就是我想要的。但是有一个问题! .toFixed(2); 在转换小额美元时不起作用。例如:1 美元 = 0.00 比特币。所以我把它改成了.toFixed(8);,它工作了。但它也会影响美元input,就像这个 0.00000000。我也可以解决这个问题吗?上帝保佑你兄弟,非常感谢你帮助我。
    猜你喜欢
    • 2014-10-14
    • 1970-01-01
    • 1970-01-01
    • 2012-06-09
    • 2012-10-20
    • 2014-11-08
    • 2012-02-16
    • 2013-08-16
    • 2012-06-27
    相关资源
    最近更新 更多