如何从java中包含.0的浮点数中删除小数部分

我只想删除包含.0的浮点数的小数部分。 所有其他数字是可以接受的。例如:

I/P: 1.0, 2.2, 88.0, 3.56666, 4.1, 45.00 , 99.560 O/P: 1 , 2.2, 88, 3.567, 4.1, 45 , 99.560 

除了将数字与”.0“进行比较并取出子string之外 ,还有什么方法可以做到吗?

编辑:我不希望ACTING FLOAT数字(像1.0,2.0不过是1 2是吗?)

我觉得我的问题是有点混乱
这里是我的澄清:我只是想显示一系列的浮点数给用户。 如果数字的小数部分为零,则只显示整数部分,否则显示数字。 我希望现在清楚..

Solutions Collecting From Web of "如何从java中包含.0的浮点数中删除小数部分"

您可以使用正则expression式,例如: \\.0+$ 。 如果小数点后面只有0,则这个正则expression式将产生true。

你可以做的另一件事是这样的:

 float x = 12.5; float result = x - (int)x; if (result != 0) { //If the value of `result` is not equal to zero, then, you have a decimal portion which is not equal to 0. } 

尝试:

 String.format("%.0f",value); 

如果android给你柠檬。 不要扔它。

 YourFormatedStringNumber = NumberFormat.getInstance().format(myNumber); makes -> "12.50" to "12.50" and "12.00" to "12" 

更多在这里doc。

尝试NumberFormat

那么,从技术上讲,显示部分是文本,所以你可以用正则expression式来完成。 如果数字匹配,则使用组提取正确的部分。 (我将在稍后更新解决scheme。)

或者,你可以简单地去:

 if ((int)Math.round(number) == number) { System.out.println((int) number) } else { System.out.println(number) } 

甚至:

 System.out.println((int) Math.round(number) == number ? String.valueOf((int) number) : String.valueOf(number)); 

小心,String.valueOf()是必需的,因为这是行不通的。 System.out.println(double)将始终得到执行,即以下不起作用:

 System.out.println((int)Math.round(number) == number ? (int) number : number); 

尝试在浮点数之前铸造int