Hướng dẫn what is the difference between double and float in php? - sự khác biệt giữa double và float trong php là gì?

Số điểm nổi (còn được gọi là "phao", "nhân đôi" hoặc "số thực") có thể được chỉ định bằng cách sử dụng bất kỳ cú pháp nào sau đây:

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>

Chính thức kể từ Php 7.4.0 (trước đây, không được phép nhấn mạnh):

LNUM          [0-9]+(_[0-9]+)*
DNUM          ([0-9]*(_[0-9]+)*[\.]{LNUM}) | ({LNUM}[\.][0-9]*(_[0-9]+)*)
EXPONENT_DNUM (({LNUM} | {DNUM}) [eE][+-]? {LNUM})

Kích thước của một chiếc phao phụ thuộc vào nền tảng, mặc dù tối đa khoảng 1,8E308 với độ chính xác khoảng 14 chữ số thập phân là một giá trị phổ biến (định dạng IEEE 64 bit).

Cảnh báo

Độ chính xác điểm nổi

Số điểm nổi có độ chính xác hạn chế. Mặc dù nó phụ thuộc vào hệ thống, PHP thường sử dụng định dạng độ chính xác kép của IEEE 754, điều này sẽ gây ra lỗi tương đối tối đa do làm tròn theo thứ tự 1.11e-16. Các hoạt động số học không cơ bản có thể gây ra các lỗi lớn hơn, và tất nhiên, việc lan truyền lỗi phải được xem xét khi một số hoạt động được kết hợp.

Ngoài ra, các số hợp lý có thể thể hiện chính xác là số điểm nổi trong cơ sở 10, như 0.1 hoặc 0.7, không có biểu diễn chính xác như số điểm nổi trong cơ sở 2, được sử dụng bên trong, bất kể kích thước của mantissa. Do đó, chúng không thể được chuyển đổi thành các đối tác nhị phân bên trong mà không mất độ chính xác nhỏ. Điều này có thể dẫn đến kết quả khó hiểu: ví dụ, floor((0.1+0.7)*10) thường sẽ trả lại 7 thay vì dự kiến ​​8, vì biểu diễn nội bộ sẽ giống như 7.9999999999999991118....

Vì vậy, không bao giờ tin tưởng kết quả số nổi vào chữ số cuối cùng và không so sánh số điểm nổi trực tiếp cho sự bình đẳng. Nếu độ chính xác cao hơn là cần thiết, các hàm toán học chính xác tùy ý và các hàm GMP có sẵn.

Để biết lời giải thích "đơn giản", hãy xem hướng dẫn điểm nổi »& nbsp; có tiêu đề" Tại sao don don số của tôi cộng lại? "

Chuyển đổi thành Float

Từ chuỗi

Nếu chuỗi là số hoặc số dẫn thì nó sẽ giải quyết thành giá trị float tương ứng, nếu không nó được chuyển đổi thành 0 (0).

Từ các loại khác

Đối với các giá trị của các loại khác, chuyển đổi được thực hiện bằng cách chuyển đổi giá trị thành int trước và sau đó để nổi. Xem Chuyển đổi sang số nguyên để biết thêm thông tin.int first and then to float. See Converting to integer for more information.

Ghi chú::

Vì một số loại có hành vi không xác định khi chuyển đổi sang INT, đây cũng là trường hợp khi chuyển đổi thành float.int, this is also the case when converting to float.

So sánh phao

Như đã lưu ý trong cảnh báo ở trên, thử nghiệm các giá trị điểm nổi cho sự bình đẳng là có vấn đề, do cách chúng được thể hiện trong nội bộ. Tuy nhiên, có nhiều cách để so sánh các giá trị điểm nổi hoạt động xung quanh những hạn chế này.

Để kiểm tra các giá trị điểm nổi cho sự bình đẳng, giới hạn trên trên lỗi tương đối do làm tròn được sử dụng. Giá trị này được gọi là Epsilon máy, hoặc vòng tròn đơn vị, và là sự khác biệt nhỏ nhất có thể chấp nhận được trong các tính toán.

$ a và $ b bằng 5 chữ số của độ chính xác.

<?php
$a 
1.23456789;
$b 1.23456780;
$epsilon 0.00001;

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
0

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
1

Nan

Một số hoạt động số có thể dẫn đến một giá trị được biểu thị bởi hằng số <?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
2. Kết quả này đại diện cho một giá trị không xác định hoặc không thể hiện được trong các tính toán dấu phẩy động. Bất kỳ so sánh lỏng lẻo hoặc nghiêm ngặt của giá trị này so với bất kỳ giá trị nào khác, bao gồm cả chính nó, nhưng ngoại trừ <?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
3, sẽ có kết quả là <?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
4. <?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
2
. This result represents an undefined or unrepresentable value in floating-point calculations. Any loose or strict comparisons of this value against any other value, including itself, but except <?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
3
, will have a result of <?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
4
.

Bởi vì <?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
2 đại diện cho bất kỳ số lượng giá trị khác nhau nào, không nên so sánh với các giá trị khác với các giá trị khác, và thay vào đó nên được kiểm tra sử dụng is_nan (). <?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
2
represents any number of different values, <?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
2
should not be compared to other values, including itself, and instead should be checked for using is_nan().

catalin dot lungraru tại gmail dot com ¶

8 năm trước

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
7

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
8

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
9

0.10

0.11

Feline tại Nospam Dot Penguin Dot irp

18 năm trước

0.12

www.sarioz.com ¶

19 năm trước

0.13

0.14

0.11

Yobberowich tại Gmail Dot Com ¶

5 năm trước

0.16

0.17

0.18

0.11

Backov tại Spotbrokers-Nospamplz Dot Com ¶

19 năm trước

0.70

0.71

0.72

0.73

0.74

0.75

0.76

0.11

Yobberowich tại Gmail Dot Com ¶

19 năm trước

0.78

0.79

floor((0.1+0.7)*10)0

floor((0.1+0.7)*10)1

floor((0.1+0.7)*10)2

0.11

Yobberowich tại Gmail Dot Com ¶

5 năm trước

floor((0.1+0.7)*10)4

floor((0.1+0.7)*10)5

floor((0.1+0.7)*10)6

0.11

Backov tại Spotbrokers-Nospamplz Dot Com ¶

James Dot Cridland tại Virginradio Dot Co Dot Uk ¶

floor((0.1+0.7)*10)8

floor((0.1+0.7)*10)9

70

71

lwiwala tại gmail dot com ¶

JRF_PHP DOT NET AT NO_SPAM DOT Adviesenzo dot nl ¶

72

73

74

75

76

77

78

79

0.11

4 năm trước

Luzian ¶

81

82

83

84

85

86

87

88

16 năm trước

MagicalTux tại php dot net ¶

89

7.9999999999999991118...0

7.9999999999999991118...1

0.11

12 năm trước

Zelko tại Mojeime Dot Com ¶

7.9999999999999991118...3

7.9999999999999991118...4

7.9999999999999991118...5

7.9999999999999991118...6

7.9999999999999991118...7

7.9999999999999991118...8

7.9999999999999991118...9

0.11

11 năm trước

rick tại ninjafoo dot com

01

02

0.11

Ẩn danh ¶

12 năm trước

04

05

0.11

Adam H ¶

8 năm trước

07

08

09

<?php
$a 
1.23456789;
$b 1.23456780;
$epsilon 0.00001;
0

<?php
$a 
1.23456789;
$b 1.23456780;
$epsilon 0.00001;
1

<?php
$a 
1.23456789;
$b 1.23456780;
$epsilon 0.00001;
2

<?php
$a 
1.23456789;
$b 1.23456780;
$epsilon 0.00001;
3

<?php
$a 
1.23456789;
$b 1.23456780;
$epsilon 0.00001;
4

0.11

Davidszilardd tại Gmail Dot Com ¶

10 năm trước

<?php
$a 
1.23456789;
$b 1.23456780;
$epsilon 0.00001;
6

<?php
$a 
1.23456789;
$b 1.23456780;
$epsilon 0.00001;
7

<?php
$a 
1.23456789;
$b 1.23456780;
$epsilon 0.00001;
8

<?php
$a 
1.23456789;
$b 1.23456780;
$epsilon 0.00001;
9

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
00

Julian L ¶

11 năm trước

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
01

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
02

0.11

Jack tại SurfaceFinishtech dot com ¶

9 năm trước

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
04

Inforsci tại gmail dot com

12 năm trước

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
05

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
06

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
07

Adam H ¶

8 năm trước

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
08

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
09

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
10

0.11

Davidszilardd tại Gmail Dot Com ¶

8 năm trước

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
12

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
13

0.11

Davidszilardd tại Gmail Dot Com ¶

10 năm trước

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
15

Julian L ¶

11 năm trước

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
16

Jack tại SurfaceFinishtech dot com ¶

9 năm trước

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
17

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
18

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
19

0.11

Inforsci tại gmail dot com

Kjohnson tại Zootweb Dot Com ¶

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
21

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
22

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
23

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
24

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
25

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
26

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
27

0.11

14 năm trước

9 năm trước

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
29

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
30

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
31

Inforsci tại gmail dot com

11 năm trước

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
32

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
33

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
34

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
35

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
36

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
37

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
38

0.11

Jack tại SurfaceFinishtech dot com ¶

9 năm trước

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
40

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
41

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
42

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
43

0.11

Inforsci tại gmail dot com

12 năm trước

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
45

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
46

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
47

0.11

Kjohnson tại Zootweb Dot Com ¶

11 năm trước

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
49

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
50

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
51

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
52

Jack tại SurfaceFinishtech dot com ¶

9 năm trước

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
53

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
54

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
55

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
56

14 năm trước

9 năm trước

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
57

Inforsci tại gmail dot com

Kjohnson tại Zootweb Dot Com ¶

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
58

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
59

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
60

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
61

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
62

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
63

0.11

14 năm trước

m dot lebkowski+php tại gmail dot com ¶

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
65

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
66

0.11

Dev tại Duy trì Dot Com ¶

11 năm trước

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
68

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
69

0.11

Jack tại SurfaceFinishtech dot com ¶

9 năm trước

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
71

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
72

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
73

<?php
$a 
1.234
$b 1.2e3
$c 7E-10;
$d 1_234.567// as of PHP 7.4.0
?>
74

0.11

Sự khác biệt giữa phao và gấp đôi là gì?

Float và Double đều có khả năng khác nhau khi nói đến số chữ số thập phân mà chúng có thể giữ được.Phao có thể chứa tới 7 chữ số thập phân chính xác trong khi gấp đôi có thể giữ tới 15.float can hold up to 7 decimal digits accurately while double can hold up to 15.

Sự khác biệt giữa Double và Float MySQL là gì?

Dữ liệu float có thể chứa 8 byte, hoặc 15 vị trí sau điểm thập phân.Dữ liệu kép tương tự như float, ngoại trừ việc nó cho phép số lượng lớn hơn nhiều.Chúng được sử dụng để chỉ định độ chính xác, đó là số lượng tổng số và số chữ số được hiển thị sau điểm thập phân của một số phức.Double data is similar to float, except that it allows for much larger numbers. They're used to specify precision, that is the number of whole numbers and number of digits shown after the decimal point of a complex number.

Sự khác biệt giữa số thập phân nổi và gấp đôi là gì?

Float sử dụng 32 bit để biểu diễn dữ liệu.double sử dụng 64 bit để biểu diễn dữ liệu.decimal sử dụng 128 bit để biểu diễn dữ liệu. Double uses 64 bits to represent data. Decimal uses 128 bits to represent data.

Có gì tốt hơn đôi hoặc nổi là gì?

Double chính xác hơn so với phao và có thể lưu trữ 64 bit, gấp đôi số lượng bit float có thể lưu trữ.Double là chính xác hơn và để lưu trữ số lượng lớn, chúng tôi thích gấp đôi so với float. and can store 64 bits, double of the number of bits float can store. Double is more precise and for storing large numbers, we prefer double over float.