قطعه کد زیر را در نظر بگیرید:
double a=1000000000000L; double b=.000000000003; double c=a/b;
مقدار برگشتی برای c*30 معادل
9.999999999999999E24
می باشد ، که باید 1E25 باشد
چگونه می توان این مشکل را حل نمود؟
برای حل این مشکی می توانید از BigDecimal به جای double استفاده نمایید.
این کلاس، عدد را به جای تبدیل به اعشار به صورت صورت و مخرج نگه داری می نماید.
یعنی
BigDecimal a=new BigDecimal(1000000000000L); BigDecimal b=new BigDecimal(.000000000003); BigDecimal c=a.divide(b);
تبلیغات در جواب یاب
اخبار
سیستم امتیازدهی
دسترسی کاربران
داغ ترین سوال ها
پربازدیدترین سوال ها