View Full Version : مشکل محاسباتی؟
esmaeilbf
چهارشنبه 27 شهریور 1392, 13:01 عصر
من دوتا فیلد دارم که از کاربر دو عدد دریافت میکنه
این اعداد رو به double تبدیل میکنم ولی وقتی ضربدر هم میکنم جواب به این صورت در میاد؟
1,000,000*50=5.0E7
cups_of_java
چهارشنبه 27 شهریور 1392, 13:53 عصر
این نمایش اعداد بزرگ هست دیگه یعنی
۵ * ۱۰ با ۷ تا صفر
esmaeilbf
چهارشنبه 27 شهریور 1392, 16:33 عصر
نمیشه کاری کرد که به صورت معمولی اعداد رو نشون بده ؟
cups_of_java
چهارشنبه 27 شهریور 1392, 18:06 عصر
System.out.println((new BigDecimal(Double.toString(ldouble))).toPlainStrin g());
یا
NumberFormat formatter = new DecimalFormat("###.#####");
String f = formatter.format(d);
یا
private static String nosci(double d) {
if(d < 0){
return "-" + nosci(-d);
}
String javaString = String.valueOf(d);
int indexOfE =javaString.indexOf("E");
if(indexOfE == -1){
return javaString;
}
StringBuffer sb = new StringBuffer();
if(d > 1){//big number
int exp = Integer.parseInt(javaString.substring(indexOfE + 1));
String sciDecimal = javaString.substring(2, indexOfE);
int sciDecimalLength = sciDecimal.length();
if(exp == sciDecimalLength){
sb.append(javaString.charAt(0));
sb.append(sciDecimal);
}else if(exp > sciDecimalLength){
sb.append(javaString.charAt(0));
sb.append(sciDecimal);
for(int i = 0; i < exp - sciDecimalLength; i++){
sb.append('0');
}
}else if(exp < sciDecimalLength){
sb.append(javaString.charAt(0));
sb.append(sciDecimal.substring(0, exp));
sb.append('.');
for(int i = exp; i < sciDecimalLength ; i++){
sb.append(sciDecimal.charAt(i));
}
}
return sb.toString();
}else{
//for little numbers use the default or you will
//loose accuracy
return javaString;
}
}
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.