我有像这样的漂浮物,
0.0 , 50.0 ...
如何将它们转换为:
0 , 50 ...
我需要小数部分中有意义的数字保持不变;
因此13.59
必须保留13.59
。
答案 0 :(得分:1)
所以没有办法做到这一点。
按照你的方式,我很确定你可以摆脱一个非常天真的解决方案。
Number formatToInt(float floating) {
if (Math.ceil(floating) == Math.floor(floating)) {
return (int)floating;
} else {
return floating;
}
}
答案 1 :(得分:1)
package com.ceil;
public class TestCeil {
public static void main(String[] args) {
double[] doubleArray = {-100.76 , 80.0 , 192.23};
Number number;
for(int i=0; i<doubleArray.length; i++){
if (Math.ceil(doubleArray[i]) == Math.floor(doubleArray[i])) {
number = (int) doubleArray[i];
}else
number= doubleArray[i];
System.out.println(number);
}
}
}
参考Java API。 Number是Double和Integer的超类:
http://docs.oracle.com/javase/7/docs/api/java/lang/Double.html
http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html
输出可以是整数或双精度,具体取决于小数位值。