- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
if($this->getAmount()){
$pos = strpos($this->getAmount(), '.');
if($pos === false )
{
$request->amount = $this->getAmount().'00';
}
else
{
$request->amount = str_replace('.','',$this->getAmount());
}
}
alexoy 17.10.2011 13:03 # −11
http://govnokod.ru/6342
3.14159265 17.10.2011 13:12 # +6
Lure Of Chaos 17.10.2011 14:57 # +1
vesan 17.10.2011 15:20 # 0
если прайс = 12.5 (без нуля), то в результате получим 125 центов, а не 1250. Так владелец магазина терял деньги.
вместо этих 11 строчек нужна всего одна:
$request->amount = (int)(string)($this->getAmount()*100);
(int)(string) именно в такой последовательности что бы не потерять цент http://stackoverflow.com/questions/812815/php-intval-and-floor-return-value-that-is-too-low
roman-kashitsyn 17.10.2011 15:28 # +5
vesan 17.10.2011 15:34 # 0
gegMOPO4 17.10.2011 16:00 # 0