我有一个数组,一个双数组,如...
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个小数点的双精度值...
我该怎么做才能得到它
答案 0 :(得分:5)
您应该格式化输出。
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”。
答案 1 :(得分:1)
试试这种方式
java.text.DecimalFormat df = new java.text.DecimalFormat("###.########"); // define here how much you want precision
for(int i=0;i<my_array.length;i++)
System.out.println(df.format(my_array[i]));
答案 2 :(得分:0)
String str = String.valueOf(double d);
解决问题?
答案 3 :(得分:0)
试试这个:
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);
答案 4 :(得分:0)
答案 5 :(得分:0)
我已将双数组更改为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<my_array.length;i++)
{
BigDecimal b2 = new BigDecimal(Double.parseDouble(my_array[i]));
BigDecimal result = b1.multiply(b2);
System.out.println(result.doubleValue);
}
亲自检查一下。正如我刚刚描述的那样,我的for循环还有很多工作要做..