PHP là typeless được nhập động, nghĩa là phải phân tích các giá trị để xác định loại của chúng (phiên bản PHP gần đây có type declarations).
Trong trường hợp của bạn, bạn có thể chỉ cần thực hiện phép toán số để buộc PHP xem xét các giá trị dưới dạng số (và nó hiểu ký hiệu khoa học x.yE-z
).
Hãy thử ví dụ
foreach (array("1.8281e-009","2.3562e-007","0.911348") as $a)
{
echo "String $a: Number: " . ($a + 1) . "\n";
}
chỉ cần thêm 1 (bạn cũng có thể trừ zero) sẽ làm cho các dây trở thành con số, với số tiền phải của số thập phân.
Kết quả:
String 1.8281e-009: Number: 1.0000000018281
String 2.3562e-007: Number: 1.00000023562
String 0.911348: Number: 1.911348
Bạn cũng có thể đúc kết quả sử dụng (float)
$real = (float) "3.141592e-007";
Nguồn
2011-01-02 03:18:21
Nó không phải là không có kiểu chữ. Bạn vẫn có thể phân biệt giữa (ví dụ) chuỗi và int với 'is_string' và' is_int'. Nó được nhập động, với rất nhiều chuyển đổi tiềm ẩn. Ngoài ra, đây là một câu trả lời hay. –
oh, không biết php hiểu ký hiệu khoa học. Đây chính xác là những gì tôi cần. Cảm ơn –
@Matthew Tôi đã nói * lập trình khôn ngoan *. Khi lập trình, bạn không có đặc biệt quan tâm đến các loại. Tất nhiên, các loại cửa hàng PHP nội bộ. * Tự động gõ * là thích hợp hơn - nhưng tôi không chắc chắn một người mới bắt đầu sẽ hiểu rằng định nghĩa tốt hơn. –