我在PHP中使用BC Math
库,因为您知道提供给BC函数的数据必须是字符串,否则可能会产生非常奇怪的结果。
我在MySQL中存储十进制值(18,10)。
我的问题是:
当我在PHP中获取这些值时,这些值的类型是什么?它们是字符串吗?我可以直接在BC中使用它们,例如bcmul($database_decimal_value , '1', '10')
?
我可以使用BC函数的输出(我猜是字符串)并直接插入MySQL十进制类型吗?
P.S。我已阅读MySQL参考资料并说:Values for DECIMAL columns no longer are represented as strings that require 1 byte per digit or sign character.
不确定这是否意味着它们不再是字符串。
我用以下代码测试答案:
<?php
$var = 0.00001;
echo bcmul('10', "$var", '5');
?>
但它与0
而不是0.00010
相呼应!
如果我将$var = 0.00001
更改为$var = '0.00001';
(这是字符串),则可以使用
答案 0 :(得分:1)
无论值本身是字符串还是数字,您都可以使用strval()
bcmul(strval($database_decimal_value) , '1', '10');
是的,您可以将这些值传递给没有引号的MySQL,它会将它们视为数字