PHP中MySQL十进制值的类型
我在PHP中使用的是PHP中MySQL十进制值的类型,php,mysql,bc,Php,Mysql,Bc,我在PHP中使用的是BC Math库,正如您所知,提供给BC函数的数据必须是字符串,否则可能会产生非常奇怪的结果 我正在MySQL中存储十进制值(18,10) 我的问题是: 在PHP中获取这些值时,这些值的类型是什么,它们是字符串吗?我可以直接在BC中使用它们吗,比如bcmul($database\u decimal\u value,'1','10') 我可以使用BC函数的输出(我猜是字符串)直接插入MySQL十进制类型吗 另外,我读过MySQL参考,它说:十进制列的值不再表示为每位数或符号
BC Math
库,正如您所知,提供给BC函数的数据必须是字符串,否则可能会产生非常奇怪的结果
我正在MySQL中存储十进制值(18,10)
我的问题是:
bcmul($database\u decimal\u value,'1','10')
十进制列的值不再表示为每位数或符号字符需要1字节的字符串。
不确定这是否意味着它们不再是字符串
编辑:
我用以下代码测试答案:
<?php
$var = 0.00001;
echo bcmul('10', "$var", '5');
?>
但它的回声是0
,而不是0.00010
!
如果我将
$var=0.00001
更改为$var='0.00001'代码>(即字符串)它工作无论值本身是字符串还是数字,您都可以使用strval()
是的,您可以将这些值不带引号地传递给MySQL,它会将它们视为数字非常感谢,我的第二个问题也是这样,对数据库来说,也可以不带引号地发送到数据库。我尝试了这个方法,但它不起作用,请您检查我上面的编辑
好吗?echo bcmul('10',“$variable”, '5');代码>使用我使用过的代码和相同的结果(更新编辑),仅当我使用$var='0.00001'时有效代码>
bcmul(strval($database_decimal_value) , '1', '10');