Forum und email

מספרי נקודה צפה

מספרי נקודה צפה (הידועים גם כ "floats", "doubles" או מספרים אמיתיים) יכולים להיות מיוצגים על ידי שימוש בכל אחד מאפני התחביר הבאים:

<?php  
  $a 
1.234;  
  
$b 1.2e3;  
  
$c 7E-10;  
   
?>
Formally:
LNUM          [0-9]+  
  DNUM          ([0-9]*[\.]{LNUM}) | ({LNUM}[\.][0-9]*)  
  EXPONENT_DNUM ( ({LNUM} | {DNUM}) [eE][+-]? {LNUM})
הגודל של הצפים תלוי בפלטפורמה, למרות זאת ערך מקובל מקסימלי הוא ~1.8e308 עם דיוק של 14 ספרות אחרי הנקודה העשרונית (הפורמט IEEE עבור 64 ביט).

Warning

דיוק של צפים

זהו דבר מקובל ששבר עשרוני כגון 0.1 או 0.7 לא יכול להיות מומר לתוך הייצוג הבינארי השלם שלהם ללא אבדן קל של דיוק. דבר זה יכול להוליך לבלבול מה, לדוגמא הביטוי, floor((0.1+0.7)*10) יחזיר לרוב 7 במקום 8 לו היינו מצפים, שייצג את הערך 7.9999999999....

זה נוגע לעובדה שזה בלתי אפשרי לייצג מספר שברים בייצוג עשרוני, בעזרת מספר סופי של ספרות. לדוגמא, 1/3 בייצוג עשרוני הוא 0.3333333. . ..

לכן לעולם אל תסמוך על צפים לגמרי ולעולם אל תשווה בין מספרים צפים לקביעה סופית של זהות. אם אתה באמת צריך דיוק גבוהת עליך להשתמש בפונקציות מתמטיות עם דיוק בלתי מוגבל או gmp במקום.

המרה למשתנה עשרוני

למידע כיצד ומתי, מחרוזות מומרות למספר עשרוני, ראה את המדריך עלדו-שיח בין מחרוזות ומספרים. לערכים של טיפוסים אחרים, התוצאה תהיה זהה, להמרה למספר שלם ואז המרה למספר עשרוני. ראה את המדריך על המרת משתנה לשלםלמידע נוסף.