Hướng dẫn point after 2 digit in php - chỉ sau 2 chữ số trong php

Trong ứng dụng của tôi, tôi làm một số toán học và kết quả có thể là float hoặc int

Tôi muốn hiển thị kết quả cuối cùng với hai chữ số sau tối đa điểm thập phân ... nếu kết quả là số float

Có hai lựa chọn để làm điều này

number_format($final ,2);

sprintf ("%.2f", $final );

Nhưng vấn đề là ... nếu kết quả cuối cùng của tôi là một int như

sprintf ("%.2f", $final );
3 tôi kết thúc với

25.00 

hoặc nếu kết quả cuối cùng là một số thứ như

sprintf ("%.2f", $final );
4 nó mang lại cho tôi

12.30

Và tôi không muốn điều đó

Có cách nào để định dạng một số để hiển thị 2 chữ số sau điểm nổi chỉ khi đó là số float với hơn 2 chữ số sau dấu thập phân? Hoặc tôi nên thực hiện một số kiểm tra trước khi định dạng số của tôi?

Đã hỏi ngày 21 tháng 7 năm 2013 lúc 11:01Jul 21, 2013 at 11:01

Hướng dẫn point after 2 digit in php - chỉ sau 2 chữ số trong php

prints:

25
25.3
25.33

Đã trả lời ngày 21 tháng 7 năm 2013 lúc 11:06Jul 21, 2013 at 11:06

user4035user4035user4035

21.5K10 Huy hiệu vàng56 Huy hiệu bạc91 Huy hiệu Đồng10 gold badges56 silver badges91 bronze badges

3

Tôi tìm thấy một lựa chọn khác. Đúc đến

sprintf ("%.2f", $final );
5 để tước các số không kéo dài:

echo (float)sprintf("%.2f", $final);
// or
echo (float)number_format($final ,2);

Nhưng các chức năng này dường như làm tròn con số giống như

sprintf ("%.2f", $final );
6:

echo sprintf("%.2f", 12.556); // 12.56
echo number_format(12.556, 2); // 12.56

Vì vậy, nếu bạn không muốn hành vi này, hãy sử dụng điều này:

$final = 12.556;
echo (int)(($final*100))/100; // 12.55

echo (int)((12*100))/100; // 12
echo (int)((12.3*100))/100; // 12.3
echo (int)((12.34567*100))/100; // 12.34

Đã trả lời ngày 21 tháng 7 năm 2013 lúc 11:52Jul 21, 2013 at 11:52

Hướng dẫn point after 2 digit in php - chỉ sau 2 chữ số trong php

BitworkbitworkingbitWorking

12.3k1 Huy hiệu vàng31 Huy hiệu bạc38 Huy hiệu đồng1 gold badge31 silver badges38 bronze badges

Tôi nghĩ rằng không có đường tránh ngắn như vậy cho nó. Kiểm tra thủ công nếu nó có 2 chữ số trở lên sau thập phân.
Manually check if it has 2 or more digits after decimal.

Làm thế nào để biết nếu nó có ít hơn một hoặc 0 chữ số sau thập phân? Chỉ cần nhân với 10 và kiểm tra xem nó có phải là số nguyên không. Nếu có, in số như nó là. Nếu bây giờ nó sử dụng '%.2f' để in nó.

Đã trả lời ngày 21 tháng 7 năm 2013 lúc 11:05Jul 21, 2013 at 11:05

rnbguyrnbguyrnbguy

1.3311 huy hiệu vàng9 Huy hiệu bạc27 Huy hiệu đồng1 gold badge9 silver badges27 bronze badges

Bạn phải thêm một điều kiện IF, nếu nó có hơn 0 chữ số sau điểm. Tôi không thấy bất kỳ giải pháp nào khác.

Một cách đơn giản và nhanh chóng để làm điều này.

$final=3.40;
$decimalNbr= strlen(substr(strrchr($final, "."), 1));
$final = number_format($final,(is_float($final) ? (($decimalNbr>2) ? 2 : $decimalNbr) : 0));


echo $final;

Hãy nhớ rằng, tôi đã thêm một số chữ số thập phân khác trước khi sử dụng number_format.

Đã trả lời ngày 21 tháng 7 năm 2013 lúc 11:12Jul 21, 2013 at 11:12

Hướng dẫn point after 2 digit in php - chỉ sau 2 chữ số trong php

SmootqSmootqSmootQ

2.0866 Huy hiệu vàng33 Huy hiệu bạc57 Huy hiệu Đồng6 gold badges33 silver badges57 bronze badges

2

Hãy thử chức năng bên dưới để duy trì 2 chữ số không đổi sau dấu thập phân

Trong trường hợp bạn muốn thay đổi số lượng chữ số thay đổi After_desimal_digits giá trị

sprintf ("%.2f", $final );
0

Đã trả lời ngày 30 tháng 5 năm 2019 lúc 6:09May 30, 2019 at 6:09

Hướng dẫn point after 2 digit in php - chỉ sau 2 chữ số trong php

Vâng, bạn nên làm một số kiểm tra. Ví dụ, kiểm tra xem

sprintf ("%.2f", $final );
7 nếu bạn cần cụ thể hai chữ số, điều đó sẽ mất nhiều nỗ lực hơn.

Đã trả lời ngày 21 tháng 7 năm 2013 lúc 11:08Jul 21, 2013 at 11:08

Ivan0x32Ivan0x32Ivan0x32

4131 Huy hiệu vàng7 Huy hiệu bạc18 Huy hiệu đồng1 gold badge7 silver badges18 bronze badges

Tôi không thích điều này.

sprintf ("%.2f", $final );
1

Đã trả lời ngày 21 tháng 7 năm 2013 lúc 11:33Jul 21, 2013 at 11:33

3

Bạn có thể sử dụng ví dụ này

sprintf ("%.2f", $final );
2

Đã trả lời ngày 18 tháng 12 năm 2013 lúc 6:40Dec 18, 2013 at 6:40

Làm thế nào tôi có thể có được 2 số thập phân trong PHP?

Sử dụng hàm Sprintf () để hiển thị một số đến hai vị trí thập phân trong PHP. to Show a Number to Two Decimal Places in PHP.

Number_format làm gì trong PHP?

PHP |hàm number_format ().Hàm number_format () là một hàm sẵn có trong PHP được sử dụng để định dạng một số với hàng ngàn được nhóm.Nó trả về số được định dạng trên thành công nếu không nó mang lại cho E_Warning khi thất bại.format a number with grouped thousands. It returns the formatted number on success otherwise it gives E_WARNING on failure.

Php float là gì?

Trong PHP, kiểu dữ liệu float được sử dụng để đặt các giá trị phân số.Một chiếc phao là một số có một điểm thập phân và có thể được mở rộng đến dạng hàm mũ.Phao cũng được gọi là số điểm nổi.Các cách khác nhau để biểu diễn các giá trị nổi là 3,14, 4,75, 5,88e+20, v.v.used to set fractional values. A float is a number with a decimal point and can be extended to exponential form. Float is also called a floating-point number. Various ways to represent float values are 3.14, 4.75, 5.88E+20, etc.

Làm thế nào bạn có thể thay đổi hàng ngàn phân tách bằng Number_format ()?

Hàm number_format () làm tròn số và thêm dấu phẩy dưới dạng dấu phân cách hàng ngàn ...
Number_format ($ n) làm tròn $ n cho toàn bộ số gần nhất và thêm dấu phẩy ở giữa hàng ngàn.....
Number_format ($ n, $ p) Vòng $ N đến $ P Các vị trí thập phân, thêm dấu phẩy giữa hàng ngàn ..