java如何将一个float型数的整数部分和小数分别输出显示
作者:frozen122 时间:2022-08-17 16:50:26
将一个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() //四舍五入
来源:https://blog.csdn.net/frozen122/article/details/111303303
标签:java,float型数,整数,小数,输出显示
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
实例详解Java调用第三方接口方法
2023-10-15 06:34:32
![](https://img.aspxhome.com/file/2023/9/67469_0s.png)
idea springboot远程debug的操作方法
2022-11-01 00:04:31
![](https://img.aspxhome.com/file/2023/8/62498_0s.png)
一文了解Java读写锁ReentrantReadWriteLock的使用
2023-10-12 19:28:21
![](https://img.aspxhome.com/file/2023/7/63067_0s.jpg)
命令行编译java文件方式
2023-01-18 18:35:47
![](https://img.aspxhome.com/file/2023/2/60252_0s.png)
Java实现企业员工管理系统
2023-08-22 16:44:50
nacos中的配置使用@Value注解获取不到值的原因及解决方案
2023-11-29 13:43:00
![](https://img.aspxhome.com/file/2023/9/60769_0s.jpg)
Spring Security实现自动登陆功能示例
2023-01-29 15:31:55
![](https://img.aspxhome.com/file/2023/6/61156_0s.png)
Spring Boot整合Redis的完整步骤
2023-06-03 03:21:56
![](https://img.aspxhome.com/file/2023/2/67652_0s.png)
java中functional interface的分类和使用详解
2021-09-15 15:59:20
c#与WMI使用技巧集第1/2页
2022-03-16 05:16:01
Spring Boot基础学习之Mybatis操作中使用Redis做缓存详解
2023-01-19 16:35:55
![](https://img.aspxhome.com/file/2023/1/67961_0s.jpg)
15个顶级Java多线程面试题(附答案)
2023-11-24 01:53:44
安卓GreenDao框架一些进阶用法整理
2023-06-17 03:27:21
Java Stream流零基础教程
2023-08-15 19:33:20
C#(int)中Convert、Parse、TryParse的区别
2023-06-25 03:19:50
Java微信授权登陆的实现示例
2021-12-11 22:03:04
![](https://img.aspxhome.com/file/2023/1/62691_0s.png)
基于Hadoop实现Knn算法
2023-11-27 04:01:20
![](https://img.aspxhome.com/file/2023/8/60048_0s.jpg)
详解Spring Bean的集合注入和自动装配
2023-02-18 15:02:58
![](https://img.aspxhome.com/file/2023/9/60829_0s.jpg)
Java客户端调用.NET的WebService实例
2023-11-03 17:22:00
![](https://img.aspxhome.com/file/2023/8/58988_0s.png)
redis与ssm整合方法(mybatis二级缓存)
2022-02-27 22:14:27
![](https://img.aspxhome.com/file/2023/3/62463_0s.png)