java如何将一个float型数的整数部分和小数分别输出显示

 更新时间:2022年07月12日 11:11:58   作者:frozen122  
这篇文章主要介绍了java如何将一个float型数的整数部分和小数分别输出显示,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

将一个float型数的整数部分和小数分别输出显示

三种方法

方一:直接类型转换,再加减,问题是类型转换导致的小数位数精确度变化,目前没找到解决方法

方二:转换成字符串后运用.split方法直接从小数点处切分

方三:转换成字符串后,标记小数点位置后,用substring方法分别构造两个子字符串

注意点:

  • 负数取整,例 -1.2 的整数部分是 -2,小数部分是0.8
//三种方法
//负数和正数的整数情况需要分开考虑
import java.util.*;
public class Split {
	
	public static void main(String[] args) {
		float num,b;
		int a,pointIndex;
		
		Scanner s = new Scanner(System.in);
		System.out.println("请输入一个float数:");
		num = s.nextFloat();
//		判断正负
		if(num >=0) {
//			正数部分计算
//			方法一:直接转换数字类型后加减,问题是转换类型会导致小数部分变化,不知道怎么解决!!
			a = (int) num;
			b = num - a;
			System.out.println(num + "整数部分:" + a);
			System.out.println(num + "小数部分:" + b);
			
//			方法二:转换成字符串,用方法split按小数点前后分割
			String str = String.valueOf(num);                   //将float类型转换成字符串
			String[] ary = str.split("\\.");			
			System.out.println(num + "整数部分为:" + ary[0]);
			System.out.println(num + "小数部分为:" + "0." + ary[1]);
			
//			方法三:同样转换成字符串,用方法indexOf标记小数点位置
			pointIndex = str.indexOf('.');
			System.out.println(num + "的整数部分为:" + str.substring(0,pointIndex));
			System.out.println(num + "的小数部分为:" + "0" + str.substring(pointIndex,str.length()));			
	    }
		
//		负数部分计算,注意,-1.7的正数部分是-2,小数部分是0.3
		else {
//			方一
			a = (int) num - 1;
			b = num - a;
			System.out.println(num + "整数部分:" + a);
			System.out.println(num + "小数部分:" + b);
//			方二
			String str = String.valueOf(num);                   //将float类型转换成字符串
			String[] ary = str.split("\\.");	
			a = Integer.parseInt(ary[0]) -1;
			b = 1 - Float.parseFloat("0." + ary[1]);            //需要计算,再次转换成float类型
			System.out.println(num + "整数部分为:" + a);
			System.out.println(num + "小数部分为:" + b);
			
//			方三
			pointIndex = str.indexOf('.');
			a = Integer.parseInt(str.substring(0,pointIndex)) -1;
			b = 1 - Float.parseFloat("0" + str.substring(pointIndex));
			System.out.println(num + "的整数部分为:" + a);
			System.out.println(num + "的小数部分为:" + b);						
		}				
	}
}

这一题非常适合后面做按钮练习

java. float 取整

  • 向上取整:
Math.ceil() //只要有小数都+1
  • 向下取整:
Math.floor() //不取小数
  • 四舍五入:
Math.round() //四舍五入

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java json与map互相转换的示例

    java json与map互相转换的示例

    这篇文章主要介绍了java json与map互相转换的示例,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2020-10-10
  • Netty通道的容器属性Attribute详解

    Netty通道的容器属性Attribute详解

    这篇文章主要介绍了Netty通道的容器属性Attribute详解,Netty中的Channel通道类,有类似于Map的容器功能,可以通过键值对的形式来保存任何Java Object的值,一般来说可以存放一些与通道实例相关联的属性,比如说服务期端的ServerSession会话实例,需要的朋友可以参考下
    2023-12-12
  • 关于spring中bean注册的优先级分析

    关于spring中bean注册的优先级分析

    Spring框架中,Bean的定义方式主要有三种:XML定义、注解扫描和配置类中的@Bean注解,在Bean注册过程中,XML定义的GenericBeanDefinition优先级最高
    2024-09-09
  • 基于kafka实现Spring Cloud Bus消息总线

    基于kafka实现Spring Cloud Bus消息总线

    消息总线是一种通信工具,可以在机器之间互相传输消息、文件等,这篇文章主要介绍了如何利用kafka实现SpringCloud Bus消息总线,感兴趣的可以学习一下
    2022-04-04
  • java实现航空用户管理系统

    java实现航空用户管理系统

    这篇文章主要为大家详细介绍了java实现航空用户管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • java实现表格数据的存储

    java实现表格数据的存储

    这篇文章主要为大家详细介绍了java实现表格数据的存储,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • JAVA初探设计模式的六大原则

    JAVA初探设计模式的六大原则

    这篇文章主要介绍了JAVA初探设计模式的六大原则,对设计模式感兴趣的同学,可以参考下
    2021-05-05
  • Mybatis-Plus实现SQL拦截器的示例

    Mybatis-Plus实现SQL拦截器的示例

    这篇文章主要介绍了Mybatis-Plus实现一个SQL拦截器,通过使用SQL拦截器,开发人员可以在执行SQL语句之前或之后对其进行修改或记录,从而更好地控制和优化数据库操作,对Mybatis-Plus SQL拦截器相关知识感兴趣的朋友一起看看吧
    2023-05-05
  • Java线程池详细解读

    Java线程池详细解读

    这篇文章主要给大家介绍了关于Java中方法使用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-08-08
  • java 中的volatile关键字

    java 中的volatile关键字

    这篇文章主要介绍了java 中的volatile关键字,volatile在多处理器开发中保证共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另一个一个线程立马可以读到这个修改的值。下面我们来看看文章的具体介绍内容吧

    2021-12-12

最新评论