如何创建 BTC 到 USD 计算器,反之亦然?

Posted

技术标签:

【中文标题】如何创建 BTC 到 USD 计算器,反之亦然?【英文标题】:How to create BTC to USD calculator with vice versa conversion? 【发布时间】: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>

【问题讨论】:

【参考方案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。我也可以解决这个问题吗?上帝保佑你兄弟,非常感谢你帮助我。

以上是关于如何创建 BTC 到 USD 计算器,反之亦然?的主要内容,如果未能解决你的问题,请参考以下文章

python btc-usd.10s.py

当前的JsonReader项不是数组

USDT/BTC/ETC/HT的解释

json刷新没有ajax,websockets

从累积和中计算减法

python异步加协程获取比特币市场信息