PHP 5.6 SoapClient传递十进制bug

Joe*_*eer 9 php soap decimal

我正在尝试使用SoapClient函数将PHP数组解析为SOAP XML.我必须将一个十进制数解析为SOAP.我的PHP数组看起来像这样:

$contactparams = array(

"DECIMALVARIABLE"=>0.00

);
Run Code Online (Sandbox Code Playgroud)

执行SOAP调用时,我得到的错误是我应该使用带小数点后2位的十进制数.我猜它PHP函数将0.00转换为普通0.

抛出的错误示例:

致命错误:未捕获的SoapFault异常:[soap:Client]无效的数字2dp值(0)

当我使用0.01它工作得很好.

我已经尝试将其解析为字符串"0.00"和0.00.""

我也尝试过number_format函数来创建0.00,但结果相同.

如何解决这个谜题的任何想法将不胜感激.

Joe*_*eer 3

经过几个小时的寻找解决方案后,我终于找到了一个狡猾的解决方案......

当输入值 0.001 时,SOAP 的函数会将其更改为正确的值 0.00

所以:

$contactparams = array(

"DECIMALVARIABLE"=>0.001

);
Run Code Online (Sandbox Code Playgroud)

给出:

DECIMALVALUE=0.00
Run Code Online (Sandbox Code Playgroud)

这不是一个干净的解决方案,但是一个有效的解决方案..