有没有什么好方法可以搜索浮点数前四个数字并使用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); } }
重要提示:请注意浮动本质上是不精确的,因此您可能会得到一个“流浪”数字或两个.例如,您的示例生成
[2 3 5 1 0 0 0 0 2 3]
最后有2和3.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。