2012-02-07 36 views
19

tôi gặp phải mã này hôm nay:Số 8e3 được đánh giá là bao nhiêu?

b = setTimeout(function() { 
    // do some javascript stuff here 
}, 8e3) 

Thời gian chờ được thiết lập để 8e3. Thời gian này tương đương với tính bằng mili giây và tại sao mọi người lại chọn ký hiệu lạ này? Mã này có vẻ đầy đủ chức năng.

+2

Mã này đã được khai thác trước đây, vì vậy tôi chắc chắn đó là nơi mà các ký hiệu xuất phát từ đó. Cảm ơn! – Ryre

Trả lời

34

8e3 là tám mười lần đến sức mạnh của ba, đó là, 8000. Điều này được gọi là scientific (or exponential) notation. Chỉ cần tưởng tượng "e" là viết tắt của "* 10 ^".

Trong trường hợp này không có nhiều điểm trong việc sử dụng ký pháp đó, nhưng khi bạn bắt đầu nhận được số lớn hơn, ký hiệu lũy thừa trở nên dễ đọc hơn. Để tìm ra bao nhiêu "1000000000" là bạn phải đếm số không, nhưng 1e9 là ngay lập tức rõ ràng.

+1

+1 Giải thích tốt. Đã học được điều gì đó ngày hôm nay. Không có ý tưởng tôi có thể sử dụng điều này trong javascript: D – brenjt

+10

@ brenjt: Nó sẽ là lạ nếu bạn không thể sử dụng nó trong JavaScript;) Đó là (hầu như) ở khắp mọi nơi (trong mọi ngôn ngữ lập trình), tôi tin;) – zizozu

+0

Không có trong mọi ngôn ngữ, nhưng trong nhiều ngôn ngữ phổ biến nhất. – Mchl

9

8e3 chính xác là 8000, vì vậy thời gian chính xác là 8 giây.

Điều này có thể được chọn (ví dụ: bởi một số bộ mã hóa) bởi vì nó lấy chính xác 3 ký tự thay vì 4 để đại diện cho 8000. Có nghĩa là bạn đạt được 25% về mặt không gian trong nơi duy nhất này :)

Và đây không phải là ký hiệu "lạ", nó chỉ là một cách khác để thể hiện số: Floating point notation

17

Điều này được gọi là ký hiệu dấu chấm động hoặc ký pháp khoa học. Đó là 8 × 10³, là 8000 mili giây. E là viết tắt của số mũ thứ mười. Hãy để tôi cung cấp cho bạn một số ví dụ:

1e3 = 1000  // 1×10³ 
1e0 = 1   // 1×10⁰ 
1e-1 = 0.1   // 1×10⁻¹ -> Works also for the negatives 
1.23e9 = 1230000000 // And really makes sense to shorten big numbers 

Ngoài ra còn có một bài báo wikipedia về chủ đề đó: Scientific Notation

9

8 * 10 = 8000 ms đó là 8 giây

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