البرمجة

تحويل قيم float إلى int في جافا

عند تحويل القيم من نوع float إلى int في جافا، قد تواجه مشكلة في فقدان البيانات بسبب تقليص القيم العشرية. في الشفرة التي قمت بكتابتها، حاولت تعيين قيمة عشرية (5.6) إلى متغير من نوع int (i). ولكن، بما أن النوع int يتوقع قيمة صحيحة، فإن الجافا سترفض هذا التحويل المباشر.

لحل هذه المشكلة، يمكنك استخدام الدالة Math.round() لتقريب القيمة العشرية إلى أقرب قيمة صحيحة، ثم تحويلها إلى int. هناك طريقتين للقيام بذلك:

  1. استخدام Math.round() مع تحويل إلى int:
java
int i = (int) Math.round(5.6); System.out.println(i); // ستطبع: 6
  1. استخدام Math.floor() أو Math.ceil() لتقريب القيمة ومن ثم تحويلها إلى int:
java
int i = (int) Math.floor(5.6); // أو Math.ceil() System.out.println(i); // ستطبع: 5

الفرق بين Math.floor() و Math.ceil() هو أن Math.floor() تقرب القيمة لأقرب عدد صحيح أصغر، بينما Math.ceil() تقربها لأقرب عدد صحيح أكبر.

باختصار، عند تحويل قيمة float إلى int، يجب استخدام إحدى الدوال المذكورة أعلاه لتحويل القيمة العشرية إلى صحيحة قبل تخزينها في متغير من نوع int.

المزيد من المعلومات

عندما تقوم بتحويل قيمة من نوع float إلى int في جافا، يتم تقريب القيمة العشرية إما لأقرب عدد صحيح أكبر أو لأقرب عدد صحيح أصغر باعتماد على القيمة العشرية.

  • إذا كانت القيمة العشرية مثل 5.6، فسيتم تقريبها لأقرب عدد صحيح أكبر، مما يعني أنها ستصبح 6 بعد التحويل.
  • إذا كانت القيمة العشرية مثل 5.2، فسيتم تقريبها لأقرب عدد صحيح أصغر، مما يعني أنها ستصبح 5 بعد التحويل.

عند استخدام Math.round()، يتم تقريب القيمة العشرية إلى أقرب عدد صحيح. إذا كانت القيمة العشرية على النصف (مثل 5.5)، فسيتم تقريبها لأقرب عدد صحيح زوجي (مثل 6).

بشكل عام، يجب أن تكون متيقنًا من تحويل القيم العشرية إلى صحيحة بشكل صحيح وملائم لاحتياجات التطبيق الخاص بك.

زر الذهاب إلى الأعلى