2010-11-12 2 views
0

ИТАК у меня есть переменная с именемКак я могу учесть пенни в деньгах php?

$total_cost 

, равный 529700

мне нужно значение в $ 5,297.00

это значение выходит из MySQL десятичного поля

10,2

мне нужно прямо сейчас придумать итог 2% и отгрузкой 8,25% на основе того, что пользователь находится в состоянии

Давайте просто предположим, все пользователи из этого состояния, как бы я сделать это с помощью PHP для сохранения центов

Например, это то, что я имел в виду

$subtotal = $total_cost * 0.02; 
$shipping = $total_cost * 0.0825; 
$new_total = $total_cost + $shipping + $subtotal; 

, но я получаю $ 0, когда я напечатать это ... любые идеи, почему

<?php print "$". $new_total; ?> 
+2

Потому что '$ total_cost' равно 0. –

+1

@Ignacio: +1 для бритвы Оккама. – Welbog

ответ

0

вы должны увидеть, где этот код ломается, и что значения вы думаете, у вас есть на самом деле там .... что делает этот выход выглядеть?

echo "Total: ".$total_cost."<br />"; 

$subtotal = $total_cost * 0.02; 
echo "Sub: ".$subtotal . "<br />"; 

$shipping = $total_cost * 0.0825; 
echo "Shipping: ".$shipping . "<br />"; 

$new_total = $total_cost + $shipping + $subtotal; 
echo "New Total: ".$new_total . "<br />"; 
2

Я не получить этот результат при тестировании кода ...

php > $total_cost=529700; 
php > $subtotal = $total_cost * 0.02; 
php > $shipping = $total_cost * 0.0825; 
php > $new_total = $total_cost + $shipping + $subtotal; 
php > print "$". $new_total; 
$583994.25 

Вы уверены, что начальное значение, что вы ожидали?

+0

@Matt - 'var_dump ($ total_cost);' – ajreal

0

This похоже, что это может вам помочь. Захватите номер, разделите его на 100, выполните свои вычисления и отформатируйте его во время вывода.

<?php print "$".number_format($new_total/100, 2); ?> 

Обратите внимание, что вы можете объединить математику в одном операторе:

$new_total = $total_cost * 1.1025; // just add the numbers together and add 1 
0

Вы должны преобразовать его в число с плавающей точкой, когда вы вычислить процент, или целое число округляется до 0.

$subtotal = $totalcost/100.0 * 0.02; 
$shipping = $totalcost/100.0 * 0.0825; 
$newtotal = $totalcost/100.0 + $subtotal + $shipping; 
Смежные вопросы