CodeGym /جاوا بلاگ /Random-SD /Java Float Keyword
John Squirrels
سطح
San Francisco

Java Float Keyword

گروپ ۾ شايع ٿيل
ڪمپيوٽنگ ٽيڪنالاجي جي ترقي ۾ ڪجهه نقطي تي، اهو واضح ٿيو ته مرڪزي پروسيسنگ يونٽن کي سچل پوائنٽ نمبرن کي پروسيس ڪرڻ لاء هارڊويئر ڊوائيسز جي ضرورت آهي. اڄ، سڀ ڪمپيوٽر آرڪيٽيڪچرز اهڙن انگن سان ڪم ڪري سگهن ٿيون. يقينا، پروگرامنگ ٻولين ۾، توهان پڻ نه ٿا ڪري سگهو بغير لاڳاپيل ڊيٽا جي قسمن جي. جاوا ۾ ٻه سچل پوائنٽ ڊيٽا جا قسم آهن: فلوٽ ۽ ڊبل. جاوا فلوٽ لفظ هڪ حقيقي نمبر بيان ڪري ٿو جيڪو ميموري ۾ 32 بٽس تي قبضو ڪري ٿو. اسان هن مضمون ۾ اهڙن انگن بابت ڳالهائينداسين.

فلوٽنگ پوائنٽ نمبر. ڪمپيوٽر ۾ حقيقي نمبر ڪيئن محفوظ ٿيل آهن؟

ڪمپيوٽر جي ميموري ۾ حقيقي انگن کي ذخيرو ڪرڻ لاء، بٽ جو هڪ خاص تعداد مختص ڪيو ويو آهي. هڪ حقيقي نمبر هڪ نشاني جي طور تي محفوظ ڪيو ويو آهي (پلس يا مائنس)، مينٽس، ۽ ايڪسپونٽ. مانٽيسا ڇا آهي ۽ بيان ڪندڙ هڪ مثال سان بهترين وضاحت ڪئي وئي آهي. چنڊ جو لڳ ڀڳ ماس 7*1022 آهي. هتي 7 مانٽيس آهي، 22 ۾ ايڪسپونٽ. جڏهن ڏيکاريندي وڏي يا ان جي برعڪس، اسڪرين تي تمام ننڍا انگ، توهان 7E22 وانگر هڪ داخلا ڏسي سگهو ٿا. هي فلوٽنگ پوائنٽ نمبر آهي، ۽ 7 هتي مينٽيس آهي، ۽ 22 آهي 10 جو exponent يا طاقت. هن اشاري کي exponential notation چئبو آهي.

Java float Keyword ۽ Java Double Keyword

جاوا ۾ فلوٽ ويلز (فلوٽنگ پوائنٽ نمبر يا حقيقي انگ) قسم جي float ۽ double طرفان ظاھر ڪيا ويا آھن . اهو اهي لفظ آهن جيڪي قيمتن کي ذخيرو ڪرڻ لاءِ استعمال ڪيا ويندا آهن هڪ خاص نشاني تائين decimal point کان پوءِ. ڊبل عدد آهن ڊبل درستي سان، جيترو ممڪن هجي انهن قدرن جي ويجهو هجي جيڪي حسابن جي نتيجي ۾ ڏنل يا حاصل ڪيا وڃن. Java Double ڪنهن به رياضياتي حسابن لاءِ استعمال ٿيندو آهي (اسڪوائر روٽ، سائن، ڪوسائن، ..)، ۽ گڏوگڏ انهن سڀني حسابن لاءِ، جتي هڪ خاص درستي ضروري هجي. فلوٽ ڊيٽا جو قسم استعمال ڪيو ويندو آھي گھٽ درست سچل پوائنٽ جي قسم لاءِ. ياداشت کي بچائڻ لاءِ اهو تمام گهٽ استعمال ڪيو ويندو آهي. هتي هيٺ اسان وٽ هڪ جدول آهي جنهن ۾ فلوٽ ۽ ڊبل بابت بنيادي معلومات آهي، انهي سان گڏ انهن جي فرق.
فلوٽ ٻيڻو
مکيه فلوٽ هڪ واحد-سڌائي قيمت آهي اهو هڪ ٻيڻو-سڌائي قدر آهي
ڊفالٽ سائيز 4 بائيٽ (32 بٽ) 8 بائيٽ (64 بِٽ)
ڊفالٽ قدر 0.0f 0.0
حد 1.4e-045 کان 3.4e+038 تائين 4.9e-324 کان 1.8e+308 تائين
ڇا لاء استعمال ڪيو ويندو آهي ياداشت کي بچائڻ لاء جزوي انگن سان نسبتا صحيح ڪم ڪرڻ لاء
تنهنڪري فلوٽ لفظ جو مطلب آهي هڪ نمبر، هڪ واحد-پريزيسن ويليو جيڪو ميموري ۾ 32 بٽ يا 4 بائيٽ وٺندو آهي. ڪجھ پروسيسرز تي، اهڙن انگن سان ڪم ڪرڻ تيز آهي، ۽، جيئن اڳ ۾ ئي ذڪر ڪيو ويو آهي، اهي گهٽ جاء وٺن ٿا جڏهن انگن جي مقابلي ۾ ٻه ڀيرا درست آهن. بهرحال، اهو ناممڪن آهي ته تيز رفتار سان چوڻ ناممڪن آهي. اچو ته چوندا آهن ته ڪجهه جديد پروسيسرز بلڪل تيزيء سان ٻه ڀيرا درست نمبرن تي عمل ڪن ٿا.

جاوا فلوٽ ۽ ڊبل اعلان

توھان ٻين قسمن جي انگن وانگر ساڳي طرح ڊبل قسم جي ھڪڙي تعداد جو اعلان ڪري سگھو ٿا :

double myDouble = 2.7;
تنهن هوندي، جيڪڏهن توهان هن طريقي سان سچل پوائنٽ نمبر جي نمائندگي ڪندا آهيو، مرتب ڪندڙ توهان کي ضرورت هوندي ته نمبر جي قسم کي ٻيڻو ڪرڻ لاء. هتي float variable جو هڪ غلط مثال آهي :

public class FloatExample {
   public static void main(String[] args) {
//double and float variables 
       double myDouble = 2.7;
       float myFloat = 3.14;
   }
}
هتي آهي ڇا ٿيندو جيڪڏهن توهان هن پروگرام کي هلائيندا آهيو:

Error:(4, 25) java: incompatible types: possible lossy conversion from double to float
حقيقت اها آهي ته اهو فلوٽ نمبر استعمال ڪرڻ لاء ناپسنديده آهي، ۽ اهو صرف ياداشت کي بچائڻ لاء ڪيو وڃي. جاوا ۾ سڀ حقيقي جزوي انگ ڊفالٽ طور ڊبل آھن ، ۽ ٻوليءَ جو نحو پڻ ھن تي زور ڏئي ٿو. جيڪڏهن توهان واقعي فلوٽ قسم سان ڪم ڪرڻ چاهيو ٿا، توهان کي ان کي واضح طور تي بيان ڪرڻ جي ضرورت آهي f سان نمبر ختم ڪندي.

public class FloatExample {
   public static void main(String[] args) {
//double and float variables
       double myDouble = 2.7;
       float myFloat = 3.14f;
   }
}
رستي جي ذريعي، فلوٽ ۽ ڊبل انگن اکرن جي شڪل ۾ لکي سگهجن ٿا.

float myFloat2 = 2E22f;
double myDouble2 = 3e10;
جيڪڏهن توهان انهن جي "عام" نمائندگي ۾ ڪافي تعداد استعمال ڪندا آهيو، جاوا انهن کي فوري طور تي ظاهري شڪل ۾ ڏيکاريندو. اچو ته هڪ مثال ڏيون:

public class FloatExample {
   public static void main(String[] args) {
//float variables
               float myFloatNumber1=2182818284590.45f;
               float myFloatNumber2=19822612787260.141592181f;
               System.out.println("myFloatNumber1 = " + myFloatNumber1);
               System.out.println("myFloatNumber2 = " + myFloatNumber2);
       System.out.println("myFloatNumber1 + myFloatNumber2 = " + myFloatNumber1 + myFloatNumber2);
           }
       }
هن پروگرام جي ڪم جو نتيجو هتي آهي:
myFloatNumber1 = 2.1828183E12 myFloatNumber2 = 1.98226121E13 myFloatNumber1 + myFloatNumber2 = 2.1828183E121.98226121E13

خاص فلوٽ ۽ ڊبل نمبر مثال

جاوا ٻوليءَ ۾ ٽي خاص فلوٽنگ پوائنٽ نمبر آهن، جيڪي اوور فلوز ۽ غلطين کي ظاهر ڪرڻ لاءِ استعمال ٿين ٿا. هتي اهي آهن:
  • مثبت لامحدود هڪ مثبت عدد کي 0 سان ورهائڻ جو نتيجو آهي. ظاھر ڪيو ويو ثابتين Double.POSITIVE_INFINITY ۽ Float.POSITIVE_INFINITY .

  • ناڪاري لامحدود هڪ منفي عدد کي 0 سان ورهائڻ جو نتيجو آهي. Double.NEGATIVE_INFINITY ۽ Float.NEGATIVE_INFINITY مستقلن جي نمائندگي ڪري ٿو.

  • NaN (هڪ نمبر نه آهي) 0/0 جي حساب سان نمائندگي ڪري ٿو يا منفي نمبر جي چورس روٽ وٺي ٿو. مسلسل Double.NaN ۽ Float.NAN جي نمائندگي ڪئي وئي آهي .

هتي انهن خاص سچل پوائنٽ نمبرن کي استعمال ڪرڻ جو هڪ مثال آهي:

public class FloatExample {
   public static void main(String[] args) {
       int myInt = 1;
       float zero = 0.0f;
       double negZero = -0.0;
       double negativeInfinity = Double.NEGATIVE_INFINITY;
       double positiveInfinity = Float.POSITIVE_INFINITY;

       System.out.println(myInt / zero);
       System.out.println(myInt / negZero);
       System.out.println(zero == negZero);
       System.out.println(negativeInfinity * 0);
       System.out.println(positiveInfinity+negativeInfinity);

   }
}
نتيجو هي آهي:
لامحدود - لاتعداد سچو NaN NaN

ڇا ڊبل درستگي ڪافي آهي؟

درحقيقت، ڊبل قسم جي ٻٽي درستگي جي باوجود، فلوٽنگ پوائنٽ نمبر استعمال ڪرڻ، مثال طور، مالي حسابن ۾، بهترين خيال نه آهي ڇو ته گول ڪرڻ جون غلطيون ناقابل قبول آهن. تنهن ڪري، اسڪرين تي هيٺ ڏنل پروگرام جي پيداوار کي ڊسپلي ڪرڻ جي ڪوشش ڪريو.

public class FloatExample {
   public static void main(String[] args) {
       System.out. println( "2.0 - 1.1 = " + (2.0 - 1.1));
   }
}
توھان ھيٺ ڏنل نتيجو حاصل ڪندا:
2.0 - 1.1 = 0.899999999999999
اهو سمجهڻ منطقي هوندو ته نتيجو 0.9 هوندو. بهرحال، اهڙيون غلطيون ڪافي عام آهن ۽ انگن جي اندروني بائنري نمائندگي سان لاڳاپيل آهن. اسان نه ٿا ڪري سگھون، مثال طور، ⅓ جي صحيح قدر کي ڊيسيمل فريڪشن طور پيش ڪري سگھون ٿا؛ يقينن، بائنري سسٽم ۾ ساڳيون پابنديون آهن. جيڪڏهن ڪم کي گولن جي غلطين کي ختم ڪرڻ جي ضرورت آهي، جاوا وٽ هن لاء بگ ڊيسيمل ڪلاس آهي.
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION