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