我建立了一个人们可以将硬币(网站货币)兑换成比特币的网站。我遇到的问题是,由于某种原因,当我将$btcprice
乘以3或更少时,回声真的很奇怪......为了你的缘故,这是重要的代码:
<?php
// get 0,01 usd in bitcoins into a variable
$btcprice = file_get_contents('https://blockchain.info/tobtc?currency=USD&value=0.01');
$valueInBTC = 4 * $btcprice;
echo $valueInBTC;
?>
任何4或更高的东西都可以使用,但是如果你试图将它乘以3或更少它就会变得奇怪。例如:
<?php
// get 0,01 usd in bitcoins into a variable
$btcprice = file_get_contents('https://blockchain.info/tobtc?currency=USD&value=0.01');
$valueInBTC = 3 * $btcprice;
echo $valueInBTC;
?>
将回显7.959E-5
我只是不明白问题是什么......
答案 0 :(得分:1)
在大多数情况下,这是格式化问题。您只需使用printf
printf("%.2f",$valueInBTC);
另一个不错的选择是使用number_format();
例如:
$number = 1234.5678;
// english notation without thousands separator
$english_format_number = number_format($number, 2, '.', '');
// 1234.57
答案 1 :(得分:1)
您获得的结果不是错误。它只是一种你不期望/知道的格式。 7.959E-5
与0.00007959
完全相同,只是将其写下来的另一种方式。可以将其视为7.959E-5 = 7.959 × (10 ^ (-5)) = 0.00007959
。它被称为Scientific notation (E notation)。在cumputation / science中使用这种表示法,因为你可以显示非常大或非常小(如你的情况下)数字较少的数字(写入时间更短)。
要获取其他格式的数字,请使用php函数sprintf()。
当您处理比特币价值时,您不应该仅仅为了输出而形成数字。使用比特币,您总是处理非常小的数字,如果您尝试使用格式化的floating point numbers进行计算,您很快就会遇到精度问题。