java如何将一个float型数的整数部分和小数分别输出显示
作者:frozen122 发布时间:2022-08-17 16:50:26
标签: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() //四舍五入
来源:https://blog.csdn.net/frozen122/article/details/111303303
0
投稿
猜你喜欢
- 在项目开发中,经常碰到map转实体对象或者对象转map的场景,工作中,很多时候我们可能比较喜欢使用第三方jar包的API对他们进行转化,而且
- 前言今天看代码看到有牵扯到弱引用的东西,就先稍微补一补Java的四种引用类型吧。Java为引用类型专门定义了一个类Reference,它是引
- 1 . pom.xml添加相关依赖<parent> <groupId>org.spring
- 公司的svn的地址改变了,怎么办呢。自己本地的正在修改的项目怎么办呢?修改一下svn的服务器地址咯。1.就是先关闭ide,重新打开,然后选择
- 1、简单又有效的方法是使用PreparedStatement采用预编译语句集,它内置了处理SQL注入的能力,只要使用它的setXXX(如:s
- 因为某些需求,要在特定的时间执行一些任务,比如定时删除服务器存储的数据缓存,定时获取数据以及定时发送推送等等,这时就需要用到定时任务了。定时
- 利用 Spring 工厂加载机制,实例化 ApplicationListener 实现类,并排序对象集合创建应用事件 * 创建类实现接口Ap
- 最近在做一个项目,遇到了项目打成 war 包的一个问题,项目创建时选择的时 jar 包方式,后因项目部署要求,需要打成 war 包部署,遇到
- LRU算法:最近最少使用淘汰算法(Least Recently Used)。LRU是淘汰最长时间没有被使用的缓存(即使该缓存被访问的次数最多
- 标准c++中string类函数介绍注意不是CString之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者
- 背景产品想对多次快速点击做一下优化,想要的效果就是双击不会打开多次但是从开发角度来说,我可以用kotlin的拓展方法来调整这个,但是之前的历
- 1.springboot启动过程中,首先会收集需要加载的bean的定义,作为BeanDefinition对象,添加到BeanFactory中
- 一:SparkSQL1.SparkSQL简介Spark SQL是Spark的一个模块,用于处理结构化的数据,它提供了一个数据抽象DataFr
- 过滤器实现过滤器需要实现 javax.servlet.Filter 接口。重写三个方法。其中 init() 方法在服务启动时执行,destr
- 本文的目的是把json串转成map键值对存储,而且只存储叶节点的数据比如json数据如下:{responseHeader:{status:0
- Spring depends-on的使用通过在XML中的<bean>里配置depends-on属性或者在一个类上使用注解@Dep
- 一、spring-boot-devtools在pom中直接引入依赖<dependency> <groupId&
- 本文实例讲述了java实现的RSA加密算法。分享给大家供大家参考,具体如下:一、什么是非对称加密1、加密的密钥与加密的密钥不相同,这样的加密
- ProxyFactory是创建代理类的工厂接口,其中的setProperties方法用来对工厂进行属性设置,但是mybatis内置的两个实现
- 返回值转成JSONString的处理主要需求描述有些返回值中的null需要转换成“”或[],另外有些