PHP 5.6 SoapClient 传递十进制错误

标签 php soap decimal

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

$contactparams = array(

"DECIMALVARIABLE"=>0.00

);

在执行 SOAP 调用时,我收到错误提示,我应该使用带 2 位小数的十进制数。我猜 PHP 函数将 0.00 转换为纯 0。

抛出的错误示例:

Fatal error: Uncaught SoapFault exception: [soap:Client] Invalid number 2dp value (0)

当我使用 0.01 时,它工作得很好。

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

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

任何解决这个谜语的想法都将不胜感激。

最佳答案

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

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

所以:

$contactparams = array(

"DECIMALVARIABLE"=>0.001

);

给予:

DECIMALVALUE=0.00

不是一个干净的解决方案,但可以工作..

关于PHP 5.6 SoapClient 传递十进制错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36977763/

相关文章:

ios - 不使用 Swift 显示小数

javascript - 如何让输入法只允许输入两位小数?

php - Symfony2 文件上传表单不显示错误

web-services - Perl - SOAP::WSDL - wsdl2perl.pl

android sqlite REAL类型

java - 从java中的soap响应创建一个json

C++-gsoap : Parameter passing memory management issues

c# - 是否有与 .net 的纯基于文件的 MSSQL 数据库等效的 PHP/Java?

php - 如何在 PHP 中连接 mysql 中的两列

php - 删除列中除字母和单个空格之外的所有内容