Hướng dẫn how many digits are in a number in php? - có bao nhiêu chữ số trong một số trong php?

25

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi muốn hỏi làm thế nào tôi có thể có được độ dài của các chữ số trong một số nguyên. Ví dụ:

$num = 245354;
$numlength = mb_strlen[$num];

$num = 245354;
$numlength = strlen[[string]$num];
6 nên là 6 trong ví dụ này. Bằng cách nào đó tôi không thể quản lý nó để làm việc?

Cảm ơn

Chỉnh sửa: Mã ví dụ ở trên -^ và phương thức tương ứng

$num = 245354;
$numlength = strlen[[string]$num];
7 hoạt động tốt. The example code above --^ and its respective method
$num = 245354;
$numlength = strlen[[string]$num];
7 works just fine.

hỏi ngày 10 tháng 2 năm 2015 lúc 14:12Feb 10, 2015 at 14:12

SuperSizesUpersizesupersize

12.9K16 Huy hiệu vàng68 Huy hiệu bạc122 Huy hiệu đồng16 gold badges68 silver badges122 bronze badges

3

Maybe:

$num = 245354;
$numlength = strlen[[string]$num];

Đã trả lời ngày 10 tháng 2 năm 2015 lúc 14:13Feb 10, 2015 at 14:13

Sergei Gorjunovsergei GorjunovSergei Gorjunov

1.7591 Huy hiệu vàng14 Huy hiệu bạc22 Huy hiệu đồng1 gold badge14 silver badges22 bronze badges

4

Câu trả lời được chấp nhận sẽ không hoạt động với những con số lớn. Cách tốt hơn để tính độ dài của bất kỳ số nào là gọi

$num = 245354;
$numlength = strlen[[string]$num];
8 với séc cho
$num = 245354;
$numlength = strlen[[string]$num];
9.

$num = 12357;
echo $num !== 0 ? floor[log10[$num] + 1] : 1; // prints 5

Nó có nhiều lợi thế. Nó nhanh hơn, bạn không thực hiện việc chọn loại, nó hoạt động trên các số lớn, nó hoạt động với các hệ thống số khác nhau như Bin, Hex, OCT.

Phương trình thực hiện logarit với cơ sở 10 sau đó làm cho sàn của nó và thêm 1.

Giải pháp này có thể hoạt động độc lập trên cơ sở, vì vậy nếu bạn muốn tính độ dài của nhị phân hoặc hex chỉ cần thay đổi cơ sở của logarit.

Làm việc fiddle

Đã trả lời ngày 10 tháng 2 năm 2015 lúc 14:36Feb 10, 2015 at 14:36

RobertrobertRobert

Huy hiệu vàng 19.3k554 Huy hiệu bạc82 Huy hiệu đồng5 gold badges54 silver badges82 bronze badges

11

Giải pháp được chấp nhận trình bày một vấn đề khi đánh giá số âm.

Nó hoạt động với một số dương:

$num = 245354;
$numlength = strlen[[string]$num];
// Result: 6

Nhưng với một số âm, [-] được thêm vào số lượng:

$num = -245354;
$numlength = strlen[[string]$num];
// Result: 7

Giải pháp giải quyết nhanh chóng:

$num = -245354;
$numlength = strlen[[string]abs[$num]];
// Result: 6

Đã trả lời ngày 13 tháng 11 năm 2019 lúc 0:29Nov 13, 2019 at 0:29

1

Cách thanh lịch hơn :]

ceil[log10[$num]];

Đã trả lời ngày 10 tháng 2 năm 2015 lúc 14:18Feb 10, 2015 at 14:18

Halayem Anishalayem AnisHalayem Anis

7.5642 Huy hiệu vàng24 Huy hiệu bạc43 Huy hiệu đồng2 gold badges24 silver badges43 bronze badges

3

Bạn cũng có thể sử dụng một số toán học cơ bản!

$digits = [int][log[$num,10]+1] 

Bài Viết Liên Quan

Chủ Đề