我在Javascript中尝试了这个并且得到了我的答案,但我需要的答案必须更准确。我试图将1除以2到1000之间的每个数字,然后简单地打印它们。
public static void main(String [] args) {
for (int i=2;i<=1000;i++){
double g = (1/i);
System.out.println(g); // print "1/1,2,3,4.....1000"
}
}
我有一段时间没有做过Java,所以我忘记了正确的变量名。
答案 0 :(得分:4)
由于1
和i
都是整数,因此使用整数除法。 1
或i
在代码的1/i
部分中需要加倍,以便不使用整数除法。您可以执行1.0/i
或1/((double) i)
之类的操作,以确保使用浮点除法。
答案 1 :(得分:2)
将1
替换为1.0D
<{1}}
答案 2 :(得分:0)
试试这个
public static void main ( String args[] ) {
for (int i=2;i<=1000;i++){
double g = (1.0/i);
System.out.println("1/"+ig);
}
<强>输出强>: 0.5 0.3333333333333333 0.25 0.2 0.16666666666666666 0.14285714285714285 0.125 。 。 。
答案 3 :(得分:0)
我会使用BigDecimal做这样的事情(注意你可以有多少精度数字)。
public static void main(String[] args) {
java.math.BigDecimal ONE = java.math.BigDecimal.ONE;
// 50 digits of precision.
java.math.MathContext mc = new java.math.MathContext(50);
for (int i = 2; i <= 1000; i++) {
java.math.BigDecimal divisor = new java.math.BigDecimal(i);
java.math.BigDecimal result = ONE.divide(divisor, mc);
result.round(mc);
System.out.printf("%d/%d = %s\n", 1, i,
result.toString());
}
}