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。 –