2010-07-19 25 views

उत्तर

118

PHP में कोई अंतर नहीं है। float, double या real समान डेटाटाइप हैं।

सी स्तर पर, सब कुछ double के रूप में संग्रहीत किया जाता है।
वास्तविक आकार अभी भी प्लेटफ़ॉर्म-निर्भर है।

अधिक जानकारी के लिए मैनुअल देखें:
http://www.php.net/manual/en/language.types.float.php

+0

इसके बारे में निश्चित है? क्या इसके बारे में कुछ स्मृति उपयोग भिन्न हैं? – TheCrazyProfessor

+1

मेरे पास 'फ़ंक्शन कुछ (फ्लोट $ num) {} 'है, जब मैं' कुछ (17.23) 'का उपयोग करता हूं तो यह ** घातक त्रुटि ** फेंकता है ** कुछ() फ्लोट, डबल दिए गए, – NaveenDA

+0

@NaveenDA का एक उदाहरण होना चाहिए PHP का संस्करण? PHP 7.0 से पहले, स्केलर प्रकार संकेत उपलब्ध नहीं थे और इसके बजाय कक्षा के नाम के रूप में व्याख्या की जाएगी। ऐसा लगता है कि वहां क्या हो रहा है। –

17

पीएचपी के लिए, वे एक ही हैं। http://www.php.net/manual/en/language.types.float.php:

Floating point numbers (also known as "floats", "doubles", or "real numbers") can be specified using any of the following syntaxes: [...]

भ्रामक हिस्सा क्यों GetType (जो आप उपयोग नहीं करना चाहिए, वैसे भी) "फ्लोट" की "डबल" के बजाय रिटर्न है। जवाब http://de2.php.net/manual/en/function.gettype.php है:

" double " (for historical reasons "double" is returned in case of a float , and not simply "float")

3

विंडोज पर पीएचपी 7.0.6 के रूप में, xdebug बिना इस आदेश की तुलना:

$ php -r 'var_dump(28.4);' 
float(28.4) 

और xdebug साथ:

$ php -r 'var_dump(28.4);' 
Command line code:1: 
double(28.4) 

नोट कि यह केवल var_dump() आउटपुट बदलता है, लेकिन वास्तविक स्मृति प्रबंधन नहीं।

यह कुछ अन्य चिंताओं को संबोधित कर सकता है कि आप doublefloat के बजाय कुछ अन्य मशीनों में var_dump में दिखाए गए हैं।

इसके अलावा, xdebug के साथ या बिना, gettype अभी भी string(6) "double" देता है।

+0

बहुत रोचक! इस पर ध्यान दिलाने के लिए धन्यवाद। –

0

पीएचपी 7.0.14

function test(double $a) { 
    var_dump($a); 
} 
test(2.2111); 

रिटर्न में "गंभीर त्रुटि: Uncaught TypeError: तर्क 1 परीक्षण करने के लिए पारित कर दिया() डबल का एक उदाहरण होना चाहिए, यह देखते हुए फ्लोट"।

function test(float $a) { 
    var_dump($a); 
} 
test(2.2111); 

स्क्रीन पर 2.2111 प्रिंट करता है।

संबंधित मुद्दे