Tôi đang đưa ra một hành vi kỳ lạ với Intval trong Php 7.0
Có vẻ như sử dụng intval
sau khi tính toán số nổi trả về các giá trị sai.
Đây là một ví dụ:
echo intval[920]; // This prints 920 as expected
echo intval[9.2 * 100]; // this prints 919!!!
Có lẽ tôi đang hiểu sai cách sử dụng chính xác của intval
.
Ai đó có thể giải thích cho tôi tại sao điều này xảy ra?
Đã hỏi ngày 23 tháng 5 năm 2017 lúc 9:09May 23, 2017 at 9:09
2
Bạn có thể vui lòng thử điều này:
[int][9.2 * 10]
HOẶC
Xem ví dụ dưới đây, đây là từ một bình luận trong tài liệu
$n="19.99";
print intval[$n*100]; // prints 1998
print intval[strval[$n*100]]; // prints 1999
Đã trả lời ngày 23 tháng 5 năm 2017 lúc 9:12May 23, 2017 at 9:12
ZaeemzaeemZaeem
3643 Huy hiệu bạc15 Huy hiệu Đồng3 silver badges15 bronze badges
2
Spoon_Reloaded tại Gmail Dot Com ¶
13 năm trước — Get the integer value of a variable
Anony Moose ¶
2 năm trước[mixed $value
, int $base
= 10]: int
Ẩn danh ¶
Anthony ¶4 năm trước
9 năm trước
tuxedobob tại mac dot com ¶:
18 năm trước
- pfreet tại gmail dot com ¶
- Nếu chuỗi bắt đầu bằng "0", cơ sở được lấy là 8 [bát phân]; nếu không thì,
- Cơ sở được lấy là 10 [thập phân].
Trả về giá trị
Giá trị số nguyên của value
khi thành công hoặc 0 khi thất bại. Mảng trống Trả về 0, mảng không trống trở lại 1.
Giá trị tối đa phụ thuộc vào hệ thống. Các hệ thống 32 bit có phạm vi số nguyên có chữ ký tối đa là -2147483648 đến 2147483647. Vì vậy, ví dụ trên một hệ thống như vậy,
[int][9.2 * 10]
2 sẽ trả về 2147483647. Giá trị số nguyên có chữ ký tối đa cho hệ thống 64 bit là 92223372036854Các chuỗi rất có thể sẽ trả về 0 mặc dù điều này phụ thuộc vào các ký tự ngoài cùng bên trái của chuỗi. Các quy tắc phổ biến của việc đúc số nguyên áp dụng.
Ví dụ
Ví dụ #1 intval [] Ví dụintval[] examples
Các ví dụ sau đây dựa trên hệ thống 32 bit.
[int][9.2 * 10]
3Ghi chú
Ghi chú::
Tham số
base
không có hiệu lực trừ khi tham sốvalue
là một chuỗi.
Xem thêm
- boolval [] - Nhận giá trị boolean của một biến
- floatVal [] - nhận giá trị float của một biến
- strval [] - Nhận giá trị chuỗi của một biến
- setType [] - Đặt loại biến
- is_numeric [] - Tìm một biến là số hay chuỗi số
- Loại tung hứng
- BCMath Chức năng toán học chính xác tùy ý
Ken ¶ ¶
10 năm trước
[int][9.2 * 10]
6Leon tại Leonidasjp Dot NL ¶ ¶
5 năm trước
[int][9.2 * 10]
7[int][9.2 * 10]
8[int][9.2 * 10]
9Winbill tại hotmail dot com ¶
11 năm trước
$n="19.99";
print intval[$n*100]; // prints 1998
print intval[strval[$n*100]]; // prints 1999
0$n="19.99";
print intval[$n*100]; // prints 1998
print intval[strval[$n*100]]; // prints 1999
1[int][9.2 * 10]
9zak tại php dot net ¶ ¶
22 năm trước
$n="19.99";
print intval[$n*100]; // prints 1998
print intval[strval[$n*100]]; // prints 1999
3$n="19.99";
print intval[$n*100]; // prints 1998
print intval[strval[$n*100]]; // prints 1999
4$n="19.99";
print intval[$n*100]; // prints 1998
print intval[strval[$n*100]]; // prints 1999
5$n="19.99";
print intval[$n*100]; // prints 1998
print intval[strval[$n*100]]; // prints 1999
6$n="19.99";
print intval[$n*100]; // prints 1998
print intval[strval[$n*100]]; // prints 1999
7$n="19.99";
print intval[$n*100]; // prints 1998
print intval[strval[$n*100]]; // prints 1999
8$n="19.99";
print intval[$n*100]; // prints 1998
print intval[strval[$n*100]]; // prints 1999
9intval
0
intval
1
intval
2
intval
3
intval
4
intval
5
intval
6
intval
7
intval
8
intval
9
[int][9.2 * 10]
9Ben Laurienti ¶ ¶
16 năm trước
intval
1
intval
2
intval
3
intval
4
intval
5
intval
6
intval
7
[int][9.2 * 10]
9Spoon_Reloaded tại Gmail Dot Com ¶ ¶
13 năm trước
intval
9
$value
0
$value
1
[int][9.2 * 10]
9Anony Moose ¶ ¶
2 năm trước
$value
3
$value
4
$value
5
$value
6
$value
7
[int][9.2 * 10]
9Ẩn danh ¶ ¶
2 năm trước
$value
9
$base
0
[int][9.2 * 10]
9Ẩn danh ¶ ¶
Anthony ¶
$base
2
4 năm trước ¶
Espertalhao04 tại hotmail dot com
$base
3
$base
4
$base
5
$base
69 năm trước ¶
tuxedobob tại mac dot com ¶
$base
7
$base
8
$base
9
[int][9.2 * 10]
918 năm trước ¶
Espertalhao04 tại hotmail dot com
value
1
value
2
value
3
[int][9.2 * 10]
99 năm trước ¶
16 năm trước
value
5
Spoon_Reloaded tại Gmail Dot Com ¶ ¶
11 năm trước
value
6
zak tại php dot net ¶ ¶
22 năm trước
value
7
value
8
value
9
base
0Ben Laurienti ¶ ¶
16 năm trước
base
1