payway-ar / sdk-php-ventaonline

SDK de BackEnd para Gateway de pago Payway
MIT License
20 stars 17 forks source link

Al convertir decimales no se respeta el valor inicial #54

Open cesaremorel opened 1 year ago

cesaremorel commented 1 year ago

El problema se encuentra en el método Payment->rmDecAmount($amount).

El mismo no utiliza precisión binaria y en ocasiones devuelve valores con error en el ultimo decimal. Recomiendo el uso de las funciones BC de PHP:

<?php

$number=4396.36;

$formatedAmount = intval($number*100);
$formatedAmount2 = (int) bcmul($number, "100.0");

print($number . PHP_EOL);
print($formatedAmount . PHP_EOL);
print($formatedAmount2 . PHP_EOL);

En donde la salida es:

4396.36
439635
439636