思路:以某一个单位为基准创建一个枚举类import java.math.BigDecimal;

import java.util.Optional;

public enum LengthUnitEnum {

/**

* 公里 以 1公里未标准

*/

KILOMETRE((byte) 1, new BigDecimal("1")),

/**

* 米

*/

METER((byte) 2, new BigDecimal("1000")),

/**

* 分米

*/

DECIMETER((byte) 3, new BigDecimal("10000")),

/**

* 厘米

*/

CENTIMETER((byte) 4, new BigDecimal("100000")),

/**

* 毫米

*/

MILLIMETER((byte) 5, new BigDecimal("1000000")),

/**

* 微米

*/

MICROMETER((byte) 6, new BigDecimal("1000000000")),

/**

* 里

*/

LI((byte) 7, new BigDecimal("2")),

/**

* 丈

*/

ZHANG((byte) 8, new BigDecimal("300")),

/**

* 尺

*/

RULER((byte) 9, new BigDecimal("3000")),

/**

* 寸

*/

SMALL((byte) 10, new BigDecimal("30000")),

/**

* 分

*/

MINUTE((byte) 11, new BigDecimal("300000")),

/**

* 厘

*/

CENTI((byte) 12, new BigDecimal("3000000")),

/**

* 海里

*/

SEA_MILE((byte) 13, new BigDecimal("0.5399568")),

/**

* 英寻

*/

FATHOM((byte) 14, new BigDecimal("546.8066492")),

/**

* 英里

*/

MILE((byte) 15, new BigDecimal("0.6213712")),

/**

* 弗隆

*/

FURLONG((byte) 16, new BigDecimal("4.9709695")),

/**

* 码

*/

CODE((byte) 17, new BigDecimal("1093.6132983")),

/**

* 英尺

*/

FOOT((byte) 18, new BigDecimal("3280.839895")),

/**

* 英寸

*/

INCH((byte) 19, new BigDecimal("39370.0787402"));

private byte id;

private BigDecimal value;

LengthUnitEnum(byte id, BigDecimal value) {

this.id = id;

this.value = value;

}

public byte getId() {

return id;

}

public BigDecimal getValue() {

return value;

}

public static Optionalget(Byte id) {

Optionalrtn = Optional.empty();

if (id != null) {

for (LengthUnitEnum code : values()) {

if (code.getId() == id) {

rtn = Optional.of(code);

}

}

}

return rtn;

}

}

实现起来也很简单@Override

public ListconverterLengthUnit(ConverterLengthUnitQuery query) throws ServiceException {

Listrtn = new ArrayList<>();

ConverterLengthUnitDTO converterLengthUnitDTO;

LengthUnitEnum unitEnum = LengthUnitEnum.get(query.getUnit()).orElseThrow(() -> new ServiceException("单位错误", ProjectResultCodeEnum.FAIL.getCode()));

//都先转换为千米

BigDecimal kilometre = query.getNumber().divide(unitEnum.getValue());

for (LengthUnitEnum lengthUnitEnum : LengthUnitEnum.values()) {

converterLengthUnitDTO = new ConverterLengthUnitDTO();

converterLengthUnitDTO.setUnit(lengthUnitEnum.getId())

.setValue(lengthUnitEnum.getValue().multiply(kilometre));

rtn.add(converterLengthUnitDTO);

}

return rtn;

}

java 单位转换的程序_Java 实现长度单位换算相关推荐

  1. java单位转换_如何创建单位转换Java程序

    步骤1:设置 步骤2:为LengthConverter创建骨架 注意: 在代码中添加注释通常是个好主意.在上面的方法中做注释,以解释方法的作用,解释传递给方法的参数,解释方法的返回值等.这将帮助您了解 ...

  2. 单位转换html代码,JavaScript实现长度单位转换

    长度单位转换JavaScript程序 var computed = false var destination = "/" var decimal = 0 function con ...

  3. java ee的小程序_Java EE调度程序

    java ee的小程序 Java EE应用程序服务器具有本机调度支持,并且在大多数应用程序中,不需要包括外部依赖项,例如著名的Quartz调度程序库. Java EE 6和7完整配置文件上提供的Jav ...

  4. java ee的小程序_Java EE应用程序的单片到微服务重构

    java ee的小程序 您是否曾经想过将现有的Java EE单体应用程序重构为基于微服务的应用程序需要做什么? 该博客说明了一个简单的购物车示例如何转换为基于微服务的应用程序,以及围绕它的一些担忧. ...

  5. java ee的小程序_Java EE 8 –为更多设备提供更多应用程序

    java ee的小程序 如果我不喜欢夏天的一件事,那就是事实是没有太多要分享或谈论的新闻. 谁决定将Java Day Tokyo置于今年的这个无聊的时间里,做得很好,并给了我一个写关于新的和即将到来的 ...

  6. java类和对象程序_Java类与对象程序设计基础

    Java类与对象程序设计基础 一.实验目的: 通过编制一个独立应用程序,使得学生掌握Java的系统所提供类的引用方法:通过编制一个完整的应用程序,使得学生对Java的应用程序的基本构成和基本算法熟练掌 ...

  7. java求梯形面积程序_Java初级应用,计算关于梯形跟圆形的面积。该程序中有3个类:Lader、Circle和主类Test。...

    编写一个Java应用程序,该程序中有3个类:Lader.Circle和主类Test.具体要求如下:Lader类具有类型为double的上底.下底.高.面积属性,具有返回面积的功能,包括斜体样式一个构造 ...

  8. java单位转换_做一个单位转换的java程序

    展开全部 public static void main(String[] args) { e69da5e887aa62616964757a686964616f31333363393132Scanne ...

  9. java date 转换成毫秒_Java程序将Date转换为毫秒

    导入以下包以使用Date类.import java.util.Date; 否创建一个Date对象.Date d = new Date(); 让我们将当前日期转换为毫秒.d.getTime() 以下是一 ...

最新文章

  1. 数据库基础笔记(MySQL)5 —— 基础索引
  2. SqlDataSource 執行資料篩選
  3. 死而复生?RethinkDB宣布进入Linux基金会!
  4. 2012 RDS Remote App 对于win7的支持问题
  5. javaweb:session
  6. linux /proc/net/arp
  7. MySQL8.0 · 优化器新特性 · Cost Model, 直方图及优化器开销优化
  8. SQL server 系统优化--通过执行计划优化索引(1) (转)
  9. 动态规划 所有题型的总结
  10. exec vs sp_executesql
  11. 中国程序员生存现状?
  12. python遍历dataframe中的每个字符_pandas中遍历dataframe的每一个元素的实现
  13. 中国可擦除可编程只读存储器行业市场供需与战略研究报告
  14. Hadoop不同版本数据传输distcp问题设置
  15. 获取图像像素点的概率分布图
  16. VBA基本语法及基本使用
  17. powerDesigner Could not Initialize JavaVM解决
  18. Ubuntu修改IP地址不生效解决办法
  19. matlab语言与测绘,MATLAB语言及测绘数据处理应用
  20. R语言使用pdf函数将可视化图像结果保存到pdf文件中、使用pdf函数打开图像设备、使用dev.off函数关闭图像设备、自定义width参数和height参数指定图像的宽度和高度

热门文章

  1. Java编程序哥德巴赫猜想
  2. 教你计算个人所得税(企业员工)
  3. 产品Banner样式类型分析
  4. 通俗易懂——css长度单位:px、em、rem、vh、vw、in、...
  5. soapui 乱码_接口测试-soapui-中文乱码总结
  6. 给你一部电梯,如何对其进行测试?
  7. 【已解决】树莓派新系统连接vcn后无任务栏如何解决?
  8. uni-app 184查看好友朋友圈完善(五)
  9. 大数据学习之路 JUC篇
  10. 微信端中的企业号、订阅号、服务号之前的区别