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

مشكلة : توقف البرنامج عن العمل عند التعامل مع عدد كبير جداً جداً

بدأه مبتدى بايثون في 6 نوفمبر 2014 · 2 رد · 1,011 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

 

عند أجراء العمليات الحسابية على عدد كبير جداً يتوقف كود جافا عن العمل بعد أقل من دقيقة و نتيجة الخطأ هي

Exception in thread "main" java.lang.NumberFormatException: Infinite or NaN
	at java.math.BigDecimal.<init>(BigDecimal.java:895)
	at java.math.BigDecimal.<init>(BigDecimal.java:872)
	at org.nevec.rjm.BigDecimalMath.root(BigDecimalMath.java:268)
	at org.nevec.rjm.BigDecimalMath.sqrt(BigDecimalMath.java:234)
	at JavaApplication1.JavaApplication1.main(JavaApplication1.java:16)
Java Result: 1

أستخدم برنامج NetBeans , نظام التشغيل Linux Mint 64-bit

 

شكراً

#2

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

 

ضع الكود

عفواً أحبتي انقطاعي بسبب الدراسة دعواتكم بالتوفيق..

{ لا ينال العلم مستحٍ ولا مستكبر }

#3

هذا هو الكود , المشكلة تظهر عند أستخدام عدد كبير جداً في المتغير a لكن مع الأعداد البسيطة لا يظهر أي خطأ

package javaapplication1;
import java.math.*;
import java.math.BigDecimal;
import org.nevec.rjm.BigDecimalMath;

public class JavaApplication1 {


    public static void main(String[] args) { 
        
     BigDecimal a = new BigDecimal(" "); 
     BigDecimal c = BigDecimalMath.sqrt(a);
     BigDecimal d=  a.divideToIntegralValue(c);
                
     for (int e=1;e<7;e++)
       {
             BigDecimal f=a.multiply(c);
             BigDecimal f1=c.multiply(d);
             BigDecimal f2=a.multiply(d);

        
           System.out.println("a*c="+f);
           System.out.println("c*d="+f1);
           System.out.println("a*d="+f2);
        
}
    }
}

تم تعديل هذه المشاركة بواسطة مبتدى بايثون في 6 نوفمبر 2014 في 19:26

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…