2016-03-04 73 views
1

我得到了以下的問題:我有像PHP:計算與仙

2,50 
1 
2,99 

值現在我想將它們分成2個部分是這樣的:

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 
+0

爲什麼你想這樣做?得到50,而不是5,你需要使用strval(),以便它被轉換爲字符串,number_format()會爲你工作嗎?或money_format()? –

+0

添加0使50你可以使用'str_pad($ cent,2,0)' – Neat

+0

我需要這樣做,因爲webdesigner增加了一個特殊的類到cent-values ;-) – MyFault

回答

1

你能做到這一點,那麼這是一種體面的一小段路:

$x = '2.55'; 

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

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

輸出:

2 and 55 

請記住,此時您的字符串中不能有兩個點。

0

試試這個:

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

如果你有浮筒(或字符串以一個點作爲小數點分隔符)作爲輸入:

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

如果你得到的字符串用逗號作爲分隔符,前置:

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