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);
我遇到了以下问题:我得到的值类似于
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);