1
我正在用Java编写一个程序来查看Benford法则是否真的如此。我使用的是BigDecimal,但是自从我实现它之后就出现了一个错误。Benford的Java法律程序
import java.lang.*;
import java.math.BigDecimal;
public class BenfordLaw {
public static int oneornot(BigDecimal number) {
String str2num = number.toString();
if(str2num.startsWith("1")) {
return 1;
} else {
return 0;
}
}
public static void main(String[] args) {
int n = 0;
long sum = 0;
for (int i = 0; i < 10000; i++) {
BigDecimal number = BigDecimal.valueOf(Math.pow(2,n));
System.out.println(number);
double newnum = oneornot(number);
sum += newnum;
n+=1;
}
System.out.println(sum);
System.out.println(sum*0.0001);
}
}
如果您运行该程序,则会出现错误。 错误在下面的链接中。 https://pastebin.com/ShJmGjdJ
谢谢您的回答。 –
@Jaden Lee如果问题解决了,请接受我的回答。 –
我接受了你的答案。 @Jakub Ch。 –