您现在的位置是:群英 > 开发技术 > 编程语言
怎么用Java将float型数不同数字类型别分别打印
Admin发表于 2022-10-09 18:13:24530 次浏览
在这篇文章中我们会学习到关于“怎么用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 Float 保留小数位精度的实现 Java中float类型的范围及其与十六进制的转换例子 java中用float时,数字后面加f,这样是为什么你知道吗 关于Java float和double精度范围大小


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


方二:转换成字符串后运用.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将float型数不同数字类型别分别打印的内容应该都清楚了吧,希望大家阅读完这篇文章能有所收获。最后,想要了解更多怎么用Java将float型数不同数字类型别分别打印的知识,欢迎关注群英网络,群英网络将为大家推送更多相关知识的文章。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

标签: java float型数
相关信息推荐
2022-06-06 17:11:11 
摘要:go语言常用命令有:1、go build;2、go clean;3、go fmt;4、go get;5、go install;6、go test;7、go doc;8、go fix;9、go version;10、go list。
2022-05-28 17:16:07 
摘要:java获取当前日期的方法:直接实例化位于Java包java.util的Date类即可,如【Date date = new Date();】。
2022-07-27 17:56:22 
摘要:这篇文章主要为大家详细介绍了AJAX实现指定部分页面刷新效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
云活动
推荐内容
热门关键词
热门信息
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部