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


猜你喜欢
- 这里简单介绍了一些常用的属性,以及一些术语的解释和举例说明,不太全面,希望读者多多补充。1.重载:函数名相同,参数的个数或参数类型不同; p
- 本文实例讲述了spring AOP定义AfterThrowing增加处理。分享给大家供大家参考,具体如下:一 配置<?xml vers
- MainActivity.java package com.zhang.showPhoto;import android.app.Actio
- 1、此文初衷平常我们在进行微服务开发完毕后,单个微服务理应部署单个虚机上(docker也可),然后服务集中发布到服务注册中心上,但是有些小的
- 本文实例讲述了Android编程实现播放视频的方法。分享给大家供大家参考,具体如下:播放视频文件其实并不比播放音频文件复杂,主要是使用 Vi
- 一、DataTable转XML#region DataTableToXml /// &
- 在使用spring提供的JpaTemplate进行查询时,如果数据量超过100 条,查询效率就会明显降低。由于开始时使用JPA内部的双向关联
- Spring Cloud 本地属性覆盖注:使用版本版本 spring cloud F SR2当前在项目中使用了Spring cloud 配置
- thymeleaf介绍简单说, Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP
- 一、Elasticseach介绍1.简单介绍官网:开源搜索:Elasticsearch、ELK Stack 和 Kibana 的
- 1.注解的理解1)注解(Annotation)也被称为元数据(Metadata),用于修饰解释包. 类、方法、属性、构造器、局部变量等数据信
- 什么是OKHttp一般在Java平台上,我们会使用Apache HttpClient作为Http客户端,用于发送 HTTP 请求,并对响应进
- 本文实例为大家分享了Android实现加载对话框的具体代码,供大家参考,具体内容如下这里简单说一下两种实现加载对话框的方式:1.使用动画让一
- 背景:我们在开发的过程中可能需要随机生成一个ID,例如数据库中的某个ID有时候也要对其进行校验。UUID:UUID,是Universally
- 个人理解:把一个类里的多个命令分离出来,每个类里放一个命令,实现解耦合,一个类只对应一个功能,在使用命令时由另一个类来统一管理所有命令。缺点
- MyBatis的注解实现复杂映射开发实现复杂关系映射之前我们可以在映射文件中通过配置来实现,使用注解开发后,我们可以使用@Results注解
- 本文实例讲述了winform实现创建最前端窗体的方法。分享给大家供大家参考。具体实现方法如下:一、需求:1).需要这个窗体始终处于前端而且可
- java 高并发中volatile的实现原理摘要: 在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Vola
- Spring简介和配置学习目标【应用】能够独立完成springIOC的快速入门【应用】能够掌握spring的bean标签的配置【应用】能够独
- Spring多数据源实现的方式大概有2中,一种是新建多个MapperScan扫描不同包,另外一种则是通过继承AbstractRoutingD