PHP:以分计算

PHP: Calculate with cents

我遇到了以下问题:我得到的值类似于

2,50
1
2,99

现在我想将它们分成两部分,如下所示:

2 and 50
1 and 00
2 and 99


 $euro      =   explode('.', $item->price)[0]; 

 if(array_key_exists(1, explode('.', $item->price))) { 
    $cent   =   explode('.', $item->price)[1]; 
 }
 else
 { 
    $cent   =   "00"; 
 }

我想那是而不是 ;-)

还有一个问题:现在我得到以下值:

2 and 5
1 and 00
2 and 99

但应该是

2 and 50
1 and 00
2 and 99

试试这个:

<?php
$value = 2.50;
$big = ($value%10);
$small = ($value-$big)*100;
echo "Value: ".$value."\n";
echo "Big: ".$big."\n";
echo "Small: ".$small."\n";

你可以做到这一点,这是一种相当简短的方法:

$x = '2.55';

$a = explode('.',$x);

$euro = $a[0];
$cent = count($a) >= 2 ? $a[1] : '00';

输出:

2 and 55

请记住,此时您的字符串中不能有两个点。

如果您将浮点数(或以点作为小数点分隔符的字符串)作为输入:

$euro = (string)floor($input);
$cent = str_pad(($input - $euro) * 100, 2, "0", STR_PAD_LEFT);

如果您得到的字符串以逗号作为分隔符,请在前面添加:

$input = str_replace(",", ".", $input);