我正在尝试使用php和bc-math扩展将wei转换为eth。
尝试使用此功能转换它时:
function wei2eth($wei)
{
return bcdiv($wei,1000000000000000000,18);
}
我收到以下错误:
警告:bcdiv():在第121行的C:\ xampp \ htdocs \ test \ coindata.php中除以零
有没有人使用bc-math扩展名和bcdiv将wei转换为eth并知道,为什么我会收到此错误?
提前致谢
答案 0 :(得分:4)
您的输入需要指定为带有bc-math的字符串,特别是输入大于PHP_INT_MAX。 bcdiv的签名如下:
string bcdiv ( string $left_operand , string $right_operand [, int $scale = 0 ] )
在我的64位机器上,你的功能一直工作到$wei >= PHP_INT_MAX
(在我的情况下为9223372036854775807),因为PHP会正确地输入输入。
echo wei2eth('9357929650000000000');
// output 9.357929650000000000
echo wei2eth(9357929650000000000); //
// output 0.000000000000000000 and no warning with my env.
此外,您还需要修改bcdiv的第二个参数:
function wei2eth($wei)
{
return bcdiv($wei,'1000000000000000000',18);
}
因为我怀疑你的系统是32位而你的第二个参数被转换为'0',因此除以零错误。
答案 1 :(得分:0)
我使用此功能:
Array (
[1548197829] => Tuesday, 22nd Jan
[1548284229] => Wednesday, 23rd Jan
[1548370629] => Thursday, 24th Jan
[1548457029] => Friday, 25th Jan
[1548716229] => Monday, 28th Jan
[1548802629] => Tuesday, 29th Jan
[1548889029] => Wednesday, 30th Jan
[1548975429] => Thursday, 31st Jan
)
您可以格式化具有任何十进制精度和值的任何加密令牌。 无需将值提供为字符串。