持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第31天,点击查看活动详情
首先,我先给大家补充一些相关的知识点,方便大家理解算法的书写.
-
java的强制类型分为两类,基本数据类型转换和对象引用类型转换。
-
基本数据类型即int,double,float这些基本的数据类型,当高类型(高字节)转向低类型(短字节)时,如double转int,即需要强制转换。
-
对象引用类型转换,指的是子类强制转换为父类的转换。
-
之所以需要强制转换,是因为子类包含比父类更多的属性和方法,强制转换后,子类以父类的形态出现,暂时只能使用父类的方法。
扩展的强制类型转换,关于字符串
调用被转换类型的toString()方法
该方法不会影响原变量,它会将转换的结果返回
null和undefined没有toString方法( 如果调用会报错 )
我们如果碰到字符串方面的使用,当然第一考虑的还是StringBuilder和StringBuffer,这样我们可以调用其中的append等方法,最后使用toString()方法进行转换即可.
具体实现:
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextDouble()) { // 注意 while 处理多个 case
double a = in.nextDouble();
int f = (int)a;
double m = a-f;
if(m>=0.5){
System.out.println(f+1);
}else{
System.out.println(f);
}
}
}
}
实现思路解读:
我的实现过程是首先使用while保证可以不断的输入浮点数的情况下,然后通过Int的强制类型转换将浮点数中的整数可以提取出来,然后使用原来的浮点数减去提取出来的整数然后将小数也提取出来.这样我们保证了后续可以将整数和小数进行分离计算.然后用小数进行判断,如果小数的值大于0.5,那么就在原来的整数上加1并且输出.如果小数值小于0.5的话那么直接输入我们提取出来的整数即可.
实现结果展示: