iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java实现单位换算功能
  • 612
分享到

Java实现单位换算功能

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

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

摘要

本文实例为大家分享了Java实现单位换算功能的具体代码,供大家参考,具体内容如下 使用枚举进行简单计算 只加入了一些简单常用的单位,如有需要自行添加,以标准单位为基准 packag

本文实例为大家分享了Java实现单位换算功能的具体代码,供大家参考,具体内容如下

使用枚举进行简单计算

只加入了一些简单常用的单位,如有需要自行添加,以标准单位为基准


package com.dessert.common.enu;

import org.apache.commons.lang3.StringUtils;
import java.math.BigDecimal;

public class UnitConversion {

    
    public static BigDecimal conversion(BigDecimal value, UnitsEnum original, UnitsEnum need) {
        return conversion(value, original, need, 2);
    }

    
    public static BigDecimal conversion(BigDecimal value, UnitsEnum original, UnitsEnum need, int scale) {
        if (original == UnitsEnum.UN_KNOWN || need == UnitsEnum.UN_KNOWN) {
            throw new IllegalArgumentException("存在不支持的单位参数");
        }
        if (original.cateGory != need.category) {
            throw new IllegalArgumentException("转换单位不统一!" + original.category.name + "不能转换为" + need.category.name);
        }
        return value == null ? new BigDecimal(0) : value.multiply(need.rate).divide(original.rate, scale, BigDecimal.ROUND_HALF_UP);
    }


    
    public static BigDecimal conversion(BigDecimal value, String original, String need) {
        return conversion(value, getUnitEnum(original), getUnitEnum(need));
    }

    public static UnitsEnum getUnitEnum(String unit) {
        if (StringUtils.isNotEmpty(unit)) {
            for (UnitsEnum unitEnum : UnitsEnum.values()) {
                for (String possibleName : unitEnum.possibleNames) {
                    if (possibleName.equals(unit.toLowerCase())) {
                        return unitEnum;
                    }
                }
            }
        }
        return UnitsEnum.UN_KNOWN;
    }


    public enum UnitsEnum {

        LG_KM(CategoryEnum.LENGTH, "km", new String[]{"km", "千米"}, new BigDecimal("0.001"), "千米"),
        LG_M(CategoryEnum.LENGTH, "m", new String[]{"m", "米"}, new BigDecimal("1"), "米"),
        LG_Dm(CategoryEnum.LENGTH, "dm", new String[]{"dm", "分米"}, new BigDecimal("10"), "分米"),
        LG_CM(CategoryEnum.LENGTH, "cm", new String[]{"cm", "厘米"}, new BigDecimal("100"), "厘米"),
        LG_MM(CategoryEnum.LENGTH, "mm", new String[]{"mm", "毫米"}, new BigDecimal("1000"), "毫米"),
        LG_UM(CategoryEnum.LENGTH, "um", new String[]{"um", "微米"}, new BigDecimal("1000000"), "微米"),
        LG_NM(CategoryEnum.LENGTH, "nm", new String[]{"nm", "纳米"}, new BigDecimal("1000000000"), "纳米"),
        LG_INCH(CategoryEnum.LENGTH, "inch", new String[]{"in", "inch", "英寸"}, new BigDecimal("39.3700787"), "英寸"),

        EG_T(CategoryEnum.WEIGHT, "t", new String[]{"t", "吨"}, new BigDecimal("0.001"), "吨"),
        EG_KG(CategoryEnum.WEIGHT, "kg", new String[]{"kg", "千克"}, new BigDecimal("1"), "千克"),
        EG_G(CategoryEnum.WEIGHT, "g", new String[]{"g", "克"}, new BigDecimal("1000"), "克"),
        EG_MG(CategoryEnum.WEIGHT, "mg", new String[]{"mg", "毫克"}, new BigDecimal("1000000"), "毫克"),
        EG_UG(CategoryEnum.WEIGHT, "μg", new String[]{"μg", "ug", "微克"}, new BigDecimal("1000000000"), "微克"),
        EG_LB(CategoryEnum.WEIGHT, "lb", new String[]{"lb", "lbs", "磅"}, new BigDecimal("2.2046226"), "磅"),
        EG_OZ(CategoryEnum.WEIGHT, "oz", new String[]{"oz", "盎司"}, new BigDecimal("35.2739619"), "盎司"),
        EG_CT(CategoryEnum.WEIGHT, "ct", new String[]{"ct", "克拉"}, new BigDecimal("5000"), "克拉"),

        UN_KNOWN(null, "未知", null, new BigDecimal("0"), "未知");

        private CategoryEnum category;
        private String units;
        private String[] possibleNames;
        private BigDecimal rate;
        private String description;

        UnitsEnum(CategoryEnum category, String units, String[] possibleNames, BigDecimal rate, String description) {
            this.category = category;
            this.units = units;
            this.possibleNames = possibleNames;
            this.rate = rate;
            this.description = description;
        }

        public CategoryEnum getCategory() {
            return category;
        }

        public String getUnits() {
            return units;
        }

        public String[] getPossibleNames() {
            return possibleNames;
        }

        public BigDecimal getRate() {
            return rate;
        }

        public String getDescription() {
            return description;
        }


        private enum CategoryEnum {

            LENGTH("length", UnitsEnum.LG_M, "长度"),
            WEIGHT("weight", UnitsEnum.EG_KG, "重量");

            private String name;
            private UnitsEnum base;
            private String description;

            CategoryEnum(String name, UnitsEnum base, String description) {
                this.name = name;
                this.base = base;
                this.description = description;
            }

            public String getName() {
                return name;
            }

            public UnitsEnum getBase() {
                return base;
            }

            public String getDescription() {
                return description;
            }
        }

    }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: Java实现单位换算功能

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

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

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

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

下载Word文档
猜你喜欢
  • Java实现单位换算功能
    本文实例为大家分享了Java实现单位换算功能的具体代码,供大家参考,具体内容如下 使用枚举进行简单计算 只加入了一些简单常用的单位,如有需要自行添加,以标准单位为基准 packag...
    99+
    2024-04-02
  • C#实现单位换算器
    本文实例为大家分享了C#实现单位换算器的具体代码,供大家参考,具体内容如下 一、阐述 进制间转换:十六进制、十进制、八进制、二进制。长度间转换:毫米、厘米、米、公里、英寸、英尺、码。...
    99+
    2024-04-02
  • 使用Golang快速实现单位转换功能
    在当今社会,单位转换是我们生活中不可或缺的一部分。无论是在科学领域、工程领域还是日常生活中,经常会遇到需要将不同单位进行转换的情况。为了解决这个问题,我们可以利用Golang编程语言快...
    99+
    2024-02-25
    golang 实现 单位转换
  • 用Java实现简单计算器功能
    本项目为大家分享了Java实现简单计算器功能的具体代码,供大家参考,具体内容如下 一 项目说明 实训目的:掌握 Java GUI 开发中的布局管理和事件处理机制。 实训要求: (1...
    99+
    2024-04-02
  • 怎么用Java实现简单计算器功能
    这篇文章主要讲解了“怎么用Java实现简单计算器功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Java实现简单计算器功能”吧!一 项目说明实训目的:掌握 Java GUI 开发中的...
    99+
    2023-06-20
  • java如何实现定位功能
    Java可以通过使用GPS或Wi-Fi来实现定位功能。以下是几种实现定位功能的方法:1. 使用GPS:Java可以通过调用系统的GP...
    99+
    2023-09-21
    java
  • QT实现简单计算器功能
    本文实例为大家分享了QT实现简单计算器功能的具体代码,供大家参考,具体内容如下 效果图: 新建工程,创建类MainWindow,基类是QMainWindow,声明变量和函数、槽 m...
    99+
    2024-04-02
  • iOS实现简单计算器功能
    本文实例为大家分享了iOS实现简单计算器功能的具体代码,供大家参考,具体内容如下 //  ZYAppDelegate.m //  Calculator // //  Created ...
    99+
    2024-04-02
  • jQuery实现简单计算器功能
    本文实例为大家分享了jQuery实现简单计算器的具体代码,供大家参考,具体内容如下 要求: 代码: <html> <head>     <meta c...
    99+
    2024-04-02
  • pythontkinter实现简单计算器功能
    本文实例为大家分享了python tkinter实现简单计算器的具体代码,供大家参考,具体内容如下 效果图 直接上代码 import tkinter as tk input_nu...
    99+
    2024-04-02
  • java实现简单点赞功能
    本文实例为大家分享了java实现简单点赞功能的具体代码,供大家参考,具体内容如下 需求分析 分析: 1.必须先登录,否则提示2.第一次点赞(顶),点赞操作,点赞数+1,提示顶成功3...
    99+
    2024-04-02
  • JavaScript实现简单的计算器功能
    本文实例为大家分享了JavaScript实现简单计算器功能的具体代码,供大家参考,具体内容如下 具体要求如下: 实现代码: <html> <head>...
    99+
    2024-04-02
  • iOS实现简单计算器小功能
    本文实例为大家分享了iOS实现简单计算器小功能的具体代码,供大家参考,具体内容如下 SimpleCaculatorViewController.h // //  SimpleCac...
    99+
    2024-04-02
  • C++实现简单的计算器功能
    用C++编写简单计算器,供大家参考,具体内容如下 限制: 1、只能使用分支语句与循环语句;2、不能使用数组和自定义函数;(即把自己当作只学到分支语句和循环语句的初学者) 计算器要求:...
    99+
    2024-04-02
  • C#实现简单的计算器功能
    本文实例为大家分享了C#实现简单的计算器功能的具体代码,供大家参考,具体内容如下 环境:VS2010及以上版本 1、建立个Window窗体应用 2、在工具箱里拖出两个TextBox...
    99+
    2024-04-02
  • vue实现简单的计算器功能
    本文实例为大家分享了vue实现简单计算器的具体代码,供大家参考,具体内容如下 1.功能 1)  、实现加减乘除混合(包含小数点)2)、实现删除退格3)、实现内容重置 2.效...
    99+
    2024-04-02
  • java地图定位功能怎么实现
    要实现Java地图定位功能,可以使用以下步骤:1. 使用Java地图库,如Google Maps API、Baidu Maps AP...
    99+
    2024-02-29
    java
  • python实现简单的计算器功能
    本文实例为大家分享了python实现简单计算器的具体代码,供大家参考,具体内容如下 今天学习到python中界面设计部分,常用的几种图形化界面库有:Jython、wxPython和t...
    99+
    2024-04-02
  • JavaScript实现简单计算器小功能
    本文实例为大家分享了JavaScript实现简单计算器的具体代码,供大家参考,具体内容如下 此例为简单的计算器: 代码示例: <!DOCTYPE html> <h...
    99+
    2024-04-02
  • 用Java实现简单ATM机功能
    本文实例为大家分享了Java实现简单ATM机功能的具体代码,供大家参考,具体内容如下 项目介绍 基于大家使用银行卡在ATM机取款操作,进行相对应ATM机操作流程的实现。 项目功能 1...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作