广告
返回顶部
首页 > 资讯 > 后端开发 > Python >java如何将一个float型数的整数部分和小数分别输出显示
  • 160
分享到

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

2024-04-02 19:04:59 160人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录将一个float型数的整数部分和小数分别输出显示三种方法java. float 取整将一个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() //四舍五入

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

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

本文链接: https://www.lsjlt.com/news/154178.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作