双精度乘以精度和逗号

我有一个数组,一个双数组像……

Double my_array = new Double[] {6272640.0, 43560.0, 4840.0, 0.0015625, 4046856422.400000095, 40468564.223999999, 4046.856422400, 0.004046856, 1.0, 0.404685642}; 

在我的程序中,我想将每个元素与一些整数值相乘……我通过变量n接受它。

我在我的程序中完成了它…

 for(int 1=0;i<my_array.length;i++) { my_array[i] = n*my_array[i]; } 

当我尝试打印结果时,我获得了作为指数的价值……比如,3.23E等……

我需要结果为最多8个小数点的双精度值…

我应该怎么做才能得到它

您应格式化输出。

http://docs.oracle.com/javase/tutorial/java/data/numberformat.html (一般解释) http://download.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html (格式化符号)

 double yourDouble = 0.1234567890; DecimalFormat myFormatter = new DecimalFormat("0.00000000"); System.out.println(myFormatter.format(yourDouble)); 

应打印“0.12345678”。

试试这种方式

 java.text.DecimalFormat df = new java.text.DecimalFormat("###.########"); // define here how much you want precision for(int i=0;i 

是否

 String str = String.valueOf(double d); 

解决这个问题?

试试这个:

 double value = X.XX; DecimalFormat decimalFormat = new DecimalFormat(); DecimalFormatSymbols symbols = new DecimalFormatSymbols(); symbols.setDecimalSeparator('.'); // if needed symbols.setGroupingSeparator('\u0020'); // if needed decimalFormat.setDecimalFormatSymbols(symbols); decimalFormat.setMaximumFractionDigits(8); // or any other decimalFormat.setMinimumFractionDigits(8); // or any other decimalFormat.setRoundingMode(RoundingMode.HALF_EVEN); // if needed return decimalFormat.format(value); 

我把我的双数组改成了String数组,就像

 String my_array[]; my_array = new String[] {"1.006944444","6.45160645160", "0.00000326701", "0.0076001595"}; // then used my for loop like BigDecimal b1 = new BigDecimal(n); for(int 1=0;i 

亲自检查一下。 正如我刚刚描述的逻辑,我的for循环还有很多工作要做..