双精度乘法,无精度和逗号

时间:2011-11-18 06:40:30

标签: java

我有一个数组,一个双数组,如...

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个小数点的双精度值...

我该怎么做才能得到它

6 个答案:

答案 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循环还有很多工作要做..