如何通过数字(浮点数)并使用int分别获取每个数字. Java的
发布时间:2020-12-15 04:35:48 所属栏目:Java 来源:网络整理
导读:有没有什么好方法可以搜索浮点数前四个数字并使用int []分别返回每个数字? 示例:float 23,51变为整数数组,array [0] = 2,array [1] = 3,array [2] = 5,last array [3] = 1 我的代码: public void printNumber(float number){ String string = String.valu
有没有什么好方法可以搜索浮点数前四个数字并使用int []分别返回每个数字?
示例:float 23,51变为整数数组,array [0] = 2,array [1] = 3,array [2] = 5,last array [3] = 1 我的代码: public void printNumber(float number){ String string = String.valueOf(number); while(!numbers.isEmpty()){ numbers.remove(0); } for(int i = 0; i < string.length(); i++) { int j = Character.digit(string.charAt(i),10); this.number = new Number(j); numbers.add(this.number); System.out.println("digit: " + j); } } 我应该提一下,Number是一个只根据构造函数的数量返回不同图片的类,当然还有数字本身. numbers是一个ArrayList 解决方法
使用定点格式将float转换为String,然后逐个遍历其字符,并忽略小数点.
如果数字也可能是负数,则需要注意String输出中的符号: float v = 23.51F; DecimalFormat df = new DecimalFormat("#"); df.setMaximumFractionDigits(8); char[] d = df.format(v).toCharArray(); int count = 0; for (int i = 0 ; i != d.length ; i++) { if (Character.isDigit(d[i])) { count++; } } int[] res = new int[count]; int pos = 0; for (int i = 0 ; i != d.length ; i++) { if (Character.isDigit(d[i])) { res[pos++] = Character.digit(d[i],10); } } Demo. 重要提示:请注意浮动本质上是不精确的,因此您可能会得到一个“流浪”数字或两个.例如,您的示例生成 [2 3 5 1 0 0 0 0 2 3] 最后有2和3. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |