2011-09-06 32 views
11

Tôi có một số số thập phân được lưu trữ trong cơ sở dữ liệu và cần tính phần trăm tăng (hoặc giảm) giữa hai số sử dụng PHP.Tính tỷ lệ phần trăm tăng giữa hai số thập phân

Một ví dụ về hai trong số những con số này là: 111,0516 111,9052 và đó sẽ là tăng 0,7628%

tôi thấy đoạn mã sau ở đâu đó. Đáng tiếc là nó không có vẻ để làm việc với số thập phân và viên đạn họ lên:

$num_amount = 111.0516; 
$num_total = 111.9052; 

function percent($num_amount, $num_total) { 
$count1 = $num_amount/$num_total; 
$count2 = $count1 * 100; 
$count = number_format($count2, 0); 
echo $count; 
} 

percent($num_amount, $num_total); 

Lý tưởng nhất là tôi cần phải tính toán tỷ lệ phần trăm đến hai chữ số thập phân cho một câu trả lời của 0,77%.

Điều này có thể thực hiện với PHP không? Tôi bối rối. Cả kỹ năng PHP hoặc toán học của tôi đều không đủ để tìm ra.

Trả lời

8

Chỉ cần viết

$count = number_format($count2, 2); 

thay vì

$count = number_format($count2, 0); 

Trong khi vẫn giữ phần còn lại của mã của bạn như vậy.

+0

Tôi thật ngốc nghếch. Trang web này đã lưu tôi khá nhiều lần. Cảm ơn AndreyKo – Turnip

22

Hãy làm một chút về toán học.

Nếu bạn có 4 euro và tôi cho ou 2 euro, bạn có 6 euro, mức tăng là 2/6.

Nếu bạn có x euro và tôi cung cấp cho bạn delta euro, bạn có x + delta = y euro

Chúng tôi có thể viết

percentage_increase := (delta/y) * 100 
        := ((y - x)/y) * 100 
        := (1 - (x/y)) * 100 

Vì vậy, chức năng của bạn trở thành:

function percent($num_amount, $num_total) { 
    echo number_format((1 - $num_amount/$num_total) * 100, 2); // yields 0.76 
} 

Codepad example

+0

Nếu nó hoàn hảo tại sao bạn không đánh dấu nó là câu trả lời đúng? Sẽ giúp chúng tôi không thể lặp lại câu hỏi của bạn để đánh dấu hoàn hảo như nó là gì: hoàn hảo! – Laci

+0

Điều này có nghĩa là gì '1 -' (1 - $ num_amount/$ num_total)? Bạn có thể cho tôi công thức ban đầu cho điều đó không? –

Các vấn đề liên quan