首页 > 编程语言 >Java保留有效小数与百分数

Java保留有效小数与百分数

时间:2023-05-08 20:14:42浏览次数:39  
标签:main Main Java String originNum 百分数 new targetForm 小数

Java保留有效小数与百分数

1.有效小数

    /**
     * 保留有效小数
     * @param targetForm    目标形式
     * @param originNum     初始数字
     * @return              有效小数
     */
    public String getSignificantDecimal(String targetForm, String originNum) {
        DecimalFormat decimalFormat = new DecimalFormat(targetForm);
        String ans = decimalFormat.format(new BigDecimal(originNum));
        return ans;
    }

2.有效百分数

    /**
     * 保留有效百分数
     * @param targetForm    目标形式
     * @param originNum     初始数字
     * @return              有效百分数
     */
    public String getPercentage(String targetForm, String originNum) {
        DecimalFormat decimalFormat = new DecimalFormat(targetForm);
        String ans = decimalFormat.format(new BigDecimal(originNum).multiply(new BigDecimal("100"))) + "%";
        return ans;
    }

3.使用演示

  1. 原始数字为1,需要保留3位小数
public class Main {
    public static void main(String[] args) {
        // 目标形式
        String targetForm = "0.000";
        // 原始数字
        String originNum = "1";
        Main main = new Main();
        System.out.println(main.getSignificantDecimal(targetForm, originNum));
    }

        /**
     * 保留有效小数
     * @param targetForm    目标形式
     * @param originNum     初始数字
     * @return              有效小数
     */
    public String getSignificantDecimal(String targetForm, String originNum) {
        DecimalFormat decimalFormat = new DecimalFormat(targetForm);
        String ans = decimalFormat.format(new BigDecimal(originNum));
        return ans;
    }

    /**
     * 保留有效百分数
     * @param targetForm    目标形式
     * @param originNum     初始数字
     * @return              有效百分数
     */
    public String getPercentage(String targetForm, String originNum) {
        DecimalFormat decimalFormat = new DecimalFormat(targetForm);
        String ans = decimalFormat.format(new BigDecimal(originNum).multiply(new BigDecimal("100"))) + "%";
        return ans;
    }
}

得到结果:1.000

  1. 原始数字为1.35,需要保留1位小数
public class Main {
    public static void main(String[] args) {
        // 目标形式
        String targetForm = "0.0";
        // 原始数字
        String originNum = "1.35";
        Main main = new Main();
        System.out.println(main.getSignificantDecimal(targetForm, originNum));
    }
}

得到结果1.4

  1. 原始数字为1,需要转成100.0%
public class Main {
    public static void main(String[] args) {
        // 目标形式
        String targetForm = "0.0";
        // 原始数字
        String originNum = "1";
        Main main = new Main();
        System.out.println(main.getPercentage(targetForm, originNum));
    }
}
  1. 原始数字为0.798,需要转成不带小数的百分数
public class Main {
    public static void main(String[] args) {
        // 目标形式
        String targetForm = "0";
        // 原始数字
        String originNum = "0.798";
        Main main = new Main();
        System.out.println(main.getPercentage(targetForm, originNum));
    }

结果为80%

补充说明

需要import这两个包

import java.math.BigDecimal;
import java.text.DecimalFormat;

标签:main,Main,Java,String,originNum,百分数,new,targetForm,小数
From: https://www.cnblogs.com/ZJHqs/p/17382965.html

相关文章

  • Java后端真实、靠谱、强大的面试题网站:面试梯
    ​ 本文分享一个给力的Java后端面试题网站:面试梯。网址:https://offer.skyofit.com这套题真实、高频、全面、有详细答案、保你稳过面试,让你成为offer收割机。题目包括:Java基础、多线程、JVM、数据库、Redis、Shiro、Spring、SpringBoot、MyBatis、MQ、ELK、分布式、SpringCloud......
  • 学习JavaScript数据结构与算法 第五章
    五,队列和双端队列我们已经学习了栈。队列和栈非常类似,但是使用了与后进先出不同的原则。双端队列是一种将栈的原则和队列的原则混合在一起的数据结构。5.1队列数据结构队列是遵循先进先出(FIFO,也称为先来先服务)原则的一组有序的项。队列在尾部添加新元素,并从顶部移除元素。最......
  • 第七次java
    1、 给定一个有9个整数(1,6,2,3,9,4,5,7,8)的数组,先排序,然后输出排序后的数组的值。2、packageyjwj;3、4、importjava.util.Arrays;5、6、publicclasstext1{7、8、 publicstaticvoidmain(String[]args){9、 //TODOAuto-generatedmethodstub10、inta[]={......
  • 第六次java
    1.编写一个简单程序,要求数组长度为5,静态赋值10,20,30,40,50,在控制台输出该数组的值    2.packagefkx;3.4.publicclasstext1{5.6. publicstaticvoidmain(String[]args){7. //TODOAuto-generatedmethodstub8.inta[]={10,20,30,40,50};9.for(inti=0;i<a......
  • 第五次Java
    使用for循环计算1-100的和,除了以3结尾的那些数packagetext;publicclassaaa{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubinti,sum=0;for(i=1;i<=100;i++){if(i%10!=3)sum=sum+i;}System.out.println("和为"......
  • 第三章-Java的基本程序设计结构
     3.1一个简单的Java语言程序 这是程序虽然很简单,但是所有的Java程序都具有这种结构,因此还是值得花一些时间来研究的。首先,Java区分大小写。如果出现了大小写拼写错误(例如:将main拼写成Main),程序将无法运行。下面逐行的查看这段源代码。关键字pubilc称为访问修饰符(accessmodi......
  • 33基于Java简单实现图书馆借书管理系统设计与实现
    本章节给大家介绍一个基于Java简单实现图书馆借书管理系统的设计与实现项目概述项目总体分为俩种角色,分别是管理员和阅读者,管理员可以登录系统中,进行图书管理,上架下架图书,对用户进行管理、对读者进行管理、查看借阅记录管理等,读者角色可以登录系统查询图书信息、借阅和归还图......
  • Java 中的机器学习正在加速图像处理 Java 开发人员可以使用预训练的机器学习模型快速
    来源: https://www.infoworld.com/article/3601711/machine-learning-in-java-is-speeding-image-processing.html 近年来,人们对机器学习的兴趣稳步增长。具体来说,企业现在在各种用例中使用机器学习进行图像识别。在 汽车行业、 医疗保健、 安全、 零售、 仓库中的自动化......
  • JavaScript
    JavaScript概述ECMAScript和JavaScript的关系1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript提交给国际标准化组织ECMA,希望这门语言能够成为国际标准。次年,ECMA发布262号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript,这个版本就......
  • ThreadLocal让你的多线程编程更简单【Java多线程必备】
    一、介绍ThreadLocal是Java中的一个线程局部变量,该变量在多线程并发执行时,为每个线程都提供了一个独立的副本。简单来说,ThreadLocal提供了一种在多线程环境中,使每个线程绑定自己独立的变量的方法,每个线程可以独立地改变自己的副本,而不会影响其他线程所对应的副本。二、特性1.......