الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سوال عن الاعداد الحقيقية؟

مغلق
بدأه aharoon111 في 15 أغسطس 2007 · 7 رد · 1,043 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لنفرض اني عندي عدد حقيقي ناتج من المعادلة X=A*4.25

عايز استخدم الناتج مرة مع حذف الرقم العشري اللي بعد الفاصلة و مرة تانيه استخد الرقم العشري من غير الرقم الصحيح

يعني لو كان نتيجه المعاده 77.125 مرة استخدم 77 في نعادله تانيه و مرة استخدم 0.125 في معادله اخري هل في كود او طريقه اقدر احول العدد DOPUBLE الى INTEGER و هل هناك طريقه لحذف الرقم الصحيح من عدد حقيقي DOUBLE

#2

جرب هذا عسى ان يفي بالغرض

خذ الفكره و طور على راحتك ...

double data[] = { 0, 1, 521.954, 100.2345678, 2121.235 };
		java.text.NumberFormat form = java.text.NumberFormat.getInstance();

		form.setMinimumIntegerDigits(0);
		form.setMaximumIntegerDigits(0);
		form.setMinimumFractionDigits(1);

		for (int i = 0; i < data.length; i++)
			System.out.println((int)data +"\t"+form.format(data) );
#3

السلام عليكم و رحمة الله و بركاته

بتهيالي انه ممكن تنحل بسهوله عن طريق number formatting

بس مش فاكرة لاني من زمان ما برمجت بالجافا

بس عندي فاكرة تانية من خلال string tokenizer في حالة الصحيح بتاخد التوكن الاولى و في حالة الكسر بتاخد التوكن التانية و طبعا بتخلي الفاصل هو العلامة العشرية

#4

وعليكم السلام

الموضوع بسيط ، جرب التالى

		double number=77.125;
		double floorNumber=Math.floor(number); //floorNumber=77
		double rest=number-floorNumber;
	   System.out.println(floorNumber);
	   System.out.println(rest);

بالنسبة لموضوع التحويل من double ل integer لازم يكون ال double قيمته فى حيز ال integer وإلا هيحصل loss !

تم تعديل هذه المشاركة بواسطة StrikerX في 17 أغسطس 2007 في 15:26

#5

فعلا اخي StrikerX من الخطأ تحويل العدد الى integer

ولان العملية double rest=number-floorNumber لا تعطي نتائج دقيقة اضطريت لدمج طريقتي بطريقتك

لتكون بالشكل التالي

		double data[] = { 0, 1, 521.954, 100.2345678, 2121.235 };
		java.text.NumberFormat form = java.text.NumberFormat.getInstance();

		form.setMinimumIntegerDigits(0);
		form.setMaximumIntegerDigits(0);
		form.setMinimumFractionDigits(1);

		for (int i = 0; i < data.length; i++)
			System.out.println(Math.floor(data) +"\t"+form.format(data) );
#6

حسب ما فهمت هناك طريقة سهله استغرب انه لم يتطرق لها شخص

وهي الكاستينق ,,

بالاضافة الى الى استخدام الـ mod

باقي القسمة ,,

import java.util.Scanner;


 public class test {

	 public static void main(String[] args) {
		 double x;
		 int x1;
		 double x2;
		 double a;
		 Scanner S=new Scanner(System.in);
		 System.out.print("Enter A:");
		 a=S.nextDouble();
		 x=a*4.25;
		x1=(int)x;
		x2=x%1;
		 System.out.println("X= "+x);
		 System.out.println("X1= "+x1);
		 System.out.println("X2= "+x2);
	 }

 }

تم تعديل هذه المشاركة بواسطة hogaboga في 18 أغسطس 2007 في 02:51

#7

اخى نفترض ان الرقم بتاعك

Double x=3.33

لاخذ الرقم 3 فقط ببساطة اعمل كاستينج مثل

int x1=(int)x

اما لاخذ الرقم العشرى فما عليك دوى انك تطرح x1 من x

Double x2=x-x1

هذا على حد علمى معنديش طريقة اخرى

وهذا هو البرنامج

public class NO{

public static void main(String[] args) {

double x=3.33;

int x1;

double x2;

x1=(int)x;

x2=x-x1;

}

}

#8

شكرا للردود و فعلا الحل في رد كل من و engineero HOGABOGA هي الطريقه اللي مشيت معاي

هذا الموضوع مغلق.

مواضيع مشابهة