Hello,
For what I can see the line 39 is
return (round($number * $increment) / $increment);
Knowing that the $increment variable is processed just the line before ; I think that your PHP (it would be interesting to know which version you're using) do not perform the conversion of the $number variable.
It might be possible that the function is called with a string (a number encoded into a string).
Unfortunately, without knowing the "call stack" (it would be great if you can provide that information), we can't know from where that function is called and with what parameter content.
So, what I can suggest you right now, it to use that code
if(!is_numeric($number)) $number = (float)hikashop_toFloat($number);
return (round($number * $increment) / $increment);
So we will unsure the right format for the variable and avoid that issue.
If the problem persist ; we would require more details about the "call stack" (that the Joomla debug mode could provide you).
And if it fixes the issue, please confirm the patch so we can see to add it into HikaShop.
Regards,