我正在尝试获取整数的最高有效十进制数字,我的方法如下:
我正在尝试获取整数(N)中的数字总数(计数);
我将 Integer(N) 除以 1(....count 乘以 0)。
我已经完成了以下代码,它工作得很好,我只是想使用 java-8 来实现它,如果可能的话。
int N = 456778889;
double expo = Math.log10(N);
int expNum = (int)Math.floor(expo)+1; //gets the total digits in the Integer N
Run Code Online (Sandbox Code Playgroud)
现在,由于我有了数字 N 中的总位数,因此我可以将 N 除以 1 后跟零的总数,以实现此 1 后跟 X 数量的零,我的逻辑如下:
StringBuilder sb = new StringBuilder("1");
sb.setLength(expNum);
String f = sb.toString().replaceAll("[^0-9]","0"); // It makes the 1 followed by X amount of zero that i require to get my MSB
int mostSigNum = N/(Integer.valueOf(f));
System.out.println(mostSigNum);
Run Code Online (Sandbox Code Playgroud)
我知道我的方法有点不同,因为我主要使用日志和其他数学函数,但我真的想以不同的方式做。
java 8和流 …