2011-08-15 25 views
15

निम्नलिखित question इंगित करता है कि डबल का न्यूनतम मान -Double.MAX_VALUE है। क्या यह फ़्लोट के लिए भी सच है (यानी, -Float.MAX_VALUE)?जावा में फ्लोट के लिए अधिकतम मूल्य?

+1

क्या आपका मतलब है- Float.MAX_VALUE? – dckrooney

+1

क्यों नहीं [यह] (http://download.oracle.com/javase/6/docs/api/java/lang/Float.html#MIN_VALUE) सच होना चाहिए? – CoolBeans

+1

@ कुलबीन ने अपने जुड़े प्रश्न को पढ़ा; वह "सबसे बड़ी परिमाण के साथ नकारात्मक संख्या" के बारे में बात कर रहा है। – dlev

उत्तर

20

हां, -Float.MAX_VALUE सबसे बड़ा परिमाण वाला नकारात्मक संख्या है। float एस double एस के समान ही प्रदर्शित होते हैं, केवल आधे भंडारण स्थान (और परिशुद्धता के साथ नुकसान) के साथ। चूंकि आईईईई 754 में संकेतों को एक ही बिट द्वारा दर्शाया जाता है, उस बिट को फ़्लिप करने से कुल परिमाण में कोई परिवर्तन नहीं होता है शेष बिट्स

15

हाँ देखें - यह संकेत बिट फ़्लिप ... साथ छोड़कर Float.MAX_VALUE रूप में एक ही सा पैटर्न है और कहा कि एक और तरीका मूल्य पर प्राप्त करने के लिए है:

public class Test { 
    public static void main(String[] args) { 
     // Float.MAX_VALUE is intBitsToFloat(0x7f7fffff) 
     // so we set the most significant bit - the sign bit 
     float f = Float.intBitsToFloat((int) 0xff7fffff); 
     System.out.println(f == -Float.MAX_VALUE); // true 
    } 
} 
1

हां यह है, और आपके द्वारा लिंक किए गए प्रश्न के उत्तर में बताए गए बिल्कुल वही कारण के लिए, फ़्लोट्स और डबल्स आईईईई 754 प्रतिनिधित्व का उपयोग करते हैं जो उनके द्वारा संग्रहीत किए जाने के कारण "सममित" है।

7

संपादित करें: मेरा मूल उत्तर बुरी तरह गलत लगता है। इसे इंगित करने के लिए @aioobe धन्यवाद।

इसके बजाय, शीर्षक सवाल का जवाब देने जावा कोड के जादू का उपयोग कर:

System.out.printf("Float.MAX_VALUE: %,f\n", Float.MAX_VALUE); 

Float.MAX_VALUE: 340,282,346,638,528,860,000,000,000,000,000,000,000.000000

System.out.printf("in scientific notation: %.18g\n", Float.MAX_VALUE); 
वैज्ञानिक अंकन में

: 3.40282346638528860e + 38

System.out.printf(
      "in hexadecimal floating-point number with a significand and " 
      + "an exponent: %a", Float.MAX_VALUE); 

हेक्साडेसिमल फ्लोटिंग-पॉइंट नंबर के साथ ignificand और एक एक्सपोनेंट: 0x1.fffffep127

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