BigDecimal的用法详解(保留两位小数,四舍五入,数字格式化,科学计数法转数字,数字里的逗号处理)

2023-10-28

原文地址:https://blog.csdn.net/ochangwen/article/details/51531866

一、简介

    Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal。BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法。方法中的参数也必须是BigDecimal的对象。构造器是类的特殊方法,专门用来创建对象,特别是带有参数的对象。
 

二、构造器描述

BigDecimal(int)       创建一个具有参数所指定整数值的对象。
BigDecimal(double) 创建一个具有参数所指定双精度值的对象。
BigDecimal(long)    创建一个具有参数所指定长整数值的对象。
BigDecimal(String) 创建一个具有参数所指定以字符串表示的数值的对象。
 

三、方法描述

add(BigDecimal)        BigDecimal对象中的值相加,然后返回这个对象。
subtract(BigDecimal) BigDecimal对象中的值相减,然后返回这个对象。
multiply(BigDecimal)  BigDecimal对象中的值相乘,然后返回这个对象。
divide(BigDecimal)     BigDecimal对象中的值相除,然后返回这个对象。
toString()                将BigDecimal对象的数值转换成字符串。
doubleValue()          将BigDecimal对象中的值以双精度数返回。
floatValue()             将BigDecimal对象中的值以单精度数返回。
longValue()             将BigDecimal对象中的值以长整数返回。
intValue()               将BigDecimal对象中的值以整数返回。

四、常用方法

4.1、保留两位小数

 

 
  1. /**

  2. * 保留两位小数

  3. */

  4. @org.junit.Test

  5. public void formatTest() {

  6. double num=13.154215;

  7.  
  8. //方式一

  9. DecimalFormat df1 = new DecimalFormat("0.00");

  10. String str = df1.format(num);

  11. System.out.println(str); //13.15

  12.  
  13. //方式二

  14. // #.00 表示两位小数 #.0000四位小数

  15. DecimalFormat df2 =new DecimalFormat("#.00");

  16. String str2 =df2.format(num);

  17. System.out.println(str2); //13.15

  18.  
  19. //方式三

  20. //%.2f %. 表示 小数点前任意位数 2 表示两位小数 格式后的结果为f 表示浮点型

  21. String result = String.format("%.2f", num);

  22. System.out.println(result); //13.15

  23. }

String.formate用法详解:

 

 
  1. @Test

  2. public void test1() { //4.1541483776749997E9

  3. double a = 4887233385.5;

  4. double b = 0.85;

  5.  
  6. System.out.println("result1-->"+a*b); // result1-->4.1541483776749997E9

  7.  
  8. BigDecimal a1 = new BigDecimal(a);

  9. BigDecimal b1 = new BigDecimal(b);

  10.  
  11. System.out.println("result2-->"+a1.multiply(b1));//result2-->4154148377.674999891481619无限不循环

  12.  
  13. BigDecimal aBigDecimal = new BigDecimal(String.valueOf(a));

  14. BigDecimal bBigDecimal = new BigDecimal(String.valueOf(b));

  15.  
  16. // 或者下面这种写法

  17. // BigDecimal aBigDecimal = new BigDecimal(Double.toString(a));

  18. // BigDecimal bBigDecimal = new BigDecimal(Double.toString(b));

  19.  
  20. System.out.println("result3-->"+aBigDecimal.multiply(bBigDecimal)); //result3-->4154148377.675

  21.  
  22. }

 

4.2、四舍五入

 

 
  1. /**

  2. * 四舍五入

  3. */

  4. @Test

  5. public void test2() {

  6. double num = 111231.5585;

  7. BigDecimal b = new BigDecimal(num);

  8. //保留2位小数

  9. double result = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();

  10. System.out.println(result); //111231.56

  11. }

 

BigDecimal.setScale()方法用于格式化小数点
setScale(1)表示保留一位小数,默认用四舍五入方式 
setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位,如2.35会变成2.3 
setScale(1,BigDecimal.ROUND_UP)进位处理,2.35变成2.4 
setScale(1,BigDecimal.ROUND_HALF_UP)四舍五入,2.35变成2.4

setScaler(1,BigDecimal.ROUND_HALF_DOWN)四舍五入,2.35变成2.3,如果是5则向下舍

setScaler(1,BigDecimal.ROUND_CEILING)接近正无穷大的舍入

setScaler(1,BigDecimal.ROUND_FLOOR)接近负无穷大的舍入,数字>0和ROUND_UP作用一样,数字<0和ROUND_DOWN作用一样

setScaler(1,BigDecimal.ROUND_HALF_EVEN)向最接近的数字舍入,如果与两个相邻数字的距离相等,则向相邻的偶数舍入。

 

注释:

1:scale指的是你小数点后的位数。比如123.456则score就是3.

score()就是BigDecimal类中的方法啊。
比如:BigDecimal b = new BigDecimal("123.456");

b.scale(),返回的就是3.

2:roundingMode是小数的保留模式。它们都是BigDecimal中的常量字段,有很多种。
比如:BigDecimal.ROUND_HALF_UP表示的就是4舍5入。
3:pubilc BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)
的意思是说:我用一个BigDecimal对象除以divisor后的结果,并且要求这个结果保留有scale个小数位,roundingMode表示的就是保留模式是什么,是四舍五入啊还是其它的,你可以自己选!

4:对于一般add、subtract、multiply方法的小数位格式化如下:

BigDecimal mData = new BigDecimal("9.655").setScale(2, BigDecimal.ROUND_HALF_UP);
        System.out.println("mData=" + mData);

----结果:----- mData=9.66

4.3、格式化

    由于NumberFormat类的format()方法可以使用BigDecimal对象作为其参数,可以利用BigDecimal对超出16位有效数字的货币值,百分值,以及一般数值进行格式化控制。

 

 
  1. /**

  2. * 格式化

  3. */

  4. @Test

  5. public void test3() {

  6. NumberFormat currency = NumberFormat.getCurrencyInstance(); //建立货币格式化引用

  7. NumberFormat percent = NumberFormat.getPercentInstance(); //建立百分比格式化引用

  8. percent.setMaximumFractionDigits(3); //百分比小数点最多3位

  9.  
  10. BigDecimal loanAmount = new BigDecimal("150.48"); //贷款金额

  11. BigDecimal interestRate = new BigDecimal("0.008"); //利率

  12. BigDecimal interest = loanAmount.multiply(interestRate); //相乘

  13.  
  14. System.out.println("贷款金额:\t" + currency.format(loanAmount)); //贷款金额: ¥150.48

  15. System.out.println("利率:\t" + percent.format(interestRate)); //利率: 0.8%

  16. System.out.println("利息:\t" + currency.format(interest)); //利息: ¥1.20

  17. }

 

 
  1. @Test

  2. public void test3() {

  3. DecimalFormat df = new DecimalFormat();

  4. double data = 1234.56789; //格式化之前的数字

  5.  
  6. //1、定义要显示的数字的格式(这种方式会四舍五入)

  7. String style = "0.0";

  8. df.applyPattern(style);

  9. System.out.println("1-->" + df.format(data)); //1234.6

  10.  
  11. //2、在格式后添加诸如单位等字符

  12. style = "00000.000 kg";

  13. df.applyPattern(style);

  14. System.out.println("2-->" + df.format(data)); //01234.568 kg

  15.  
  16.  
  17. //3、 模式中的"#"表示如果该位存在字符,则显示字符,如果不存在,则不显示。

  18. style = "##000.000 kg";

  19. df.applyPattern(style);

  20. System.out.println("3-->" + df.format(data)); //1234.568 kg

  21.  
  22. //4、 模式中的"-"表示输出为负数,要放在最前面

  23. style = "-000.000";

  24. df.applyPattern(style);

  25. System.out.println("4-->" + df.format(data)); //-1234.568

  26.  
  27.  
  28. //5、 模式中的","在数字中添加逗号,方便读数字

  29. style = "-0,000.0#";

  30. df.applyPattern(style);

  31. System.out.println("5-->" + df.format(data)); //5-->-1,234.57

  32.  
  33.  
  34. //6、模式中的"E"表示输出为指数,"E"之前的字符串是底数的格式,

  35. // "E"之后的是字符串是指数的格式

  36. style = "0.00E000";

  37. df.applyPattern(style);

  38. System.out.println("6-->" + df.format(data)); //6-->1.23E003

  39.  
  40.  
  41. //7、 模式中的"%"表示乘以100并显示为百分数,要放在最后。

  42. style = "0.00%";

  43. df.applyPattern(style);

  44. System.out.println("7-->" + df.format(data)); //7-->123456.79%

  45.  
  46.  
  47. //8、 模式中的"\u2030"表示乘以1000并显示为千分数,要放在最后。

  48. style = "0.00\u2030";

  49. //在构造函数中设置数字格式

  50. DecimalFormat df1 = new DecimalFormat(style);

  51. //df.applyPattern(style);

  52. System.out.println("8-->" + df1.format(data)); //8-->1234567.89‰

  53. }

 

 

4.4、BigDecimal比较

BigDecimal是通过使用compareTo(BigDecimal)来比较的,具体比较情况如下:

 
  1. /**

  2. * 注意不能使用equals方法来比较大小。

  3. *

  4. * 使用BigDecimal的坏处是性能比double和float差,在处理庞大,复杂的运算时尤为明显,因根据实际需求决定使用哪种类型。

  5. */

  6. @Test

  7. public void test4() {

  8. BigDecimal a = new BigDecimal("1");

  9. BigDecimal b = new BigDecimal("2");

  10. BigDecimal c = new BigDecimal("1");

  11. int result1 = a.compareTo(b);

  12. int result2 = a.compareTo(c);

  13. int result3 = b.compareTo(a);

  14.  
  15. System.out.println(result1); //-1

  16. System.out.println(result2); //0

  17. System.out.println(result3); //1

  18. }

 

4.5、科学计数法

    有些项目可能会涉及到从Excel导入数据,但如果Excel里单元格类型为数值,但内容数据太长时(如银行账号),导入时,会默认读取为科学计数法,用以下代码便轻松解决。

 
  1. @Test

  2. public void test5() {

  3. BigDecimal bd = new BigDecimal("3.40256010353E11");

  4. String result = bd.toPlainString();

  5. System.out.println(result); //340256010353

  6. }

 

4.6、java中价格的数字中间有逗号的处理 

 

 
  1. @Test

  2. public void test1() {

  3. java.util.StringTokenizer st = new StringTokenizer( "123,456,789", ",");

  4. StringBuffer sb = new StringBuffer();

  5. while(st.hasMoreTokens()) {

  6. sb.append(st.nextToken());

  7. }

  8. System.out.println(sb); //123456789

  9. }

  10.  
  11. @Test

  12. public void test2() {

  13. String str = "123,456,789";

  14. str = str.replace(",", "");

  15. System.out.println(str); //123456789

  16. }

4.7.精确计算

 

 
  1. double value1=1.00;

  2. String value2 = "1.00";

  3. BigDecimal b1 = new BigDecimal(Double.valueOf(value1));

  4. BigDecimal b1 = new BigDecimal(String.valueOf(value2));

  5.  
  6. public BigDecimal add(BigDecimal value); //加法

  7. public BigDecimal subtract(BigDecimal value); //减法

  8. public BigDecimal multiply(BigDecimal value); //乘法

  9. public BigDecimal divide(BigDecimal value); //除法

下面是一个工具类,该工具类提供加,减,乘,除运算。

 
  1. public class Arith {

  2. /**

  3. * 提供精确加法计算的add方法

  4. * @param value1 被加数

  5. * @param value2 加数

  6. * @return 两个参数的和

  7. */

  8. public static double add(double value1,double value2){

  9. BigDecimal b1 = new BigDecimal(Double.valueOf(value1));

  10. BigDecimal b2 = new BigDecimal(Double.valueOf(value2));

  11. return b1.add(b2).doubleValue();

  12. }

  13.  
  14. /**

  15. * 提供精确减法运算的sub方法

  16. * @param value1 被减数

  17. * @param value2 减数

  18. * @return 两个参数的差

  19. */

  20. public static double sub(double value1,double value2){

  21. BigDecimal b1 = new BigDecimal(Double.valueOf(value1));

  22. BigDecimal b2 = new BigDecimal(Double.valueOf(value2));

  23. return b1.subtract(b2).doubleValue();

  24. }

  25.  
  26. /**

  27. * 提供精确乘法运算的mul方法

  28. * @param value1 被乘数

  29. * @param value2 乘数

  30. * @return 两个参数的积

  31. */

  32. public static double mul(double value1,double value2){

  33. BigDecimal b1 = new BigDecimal(Double.valueOf(value1));

  34. BigDecimal b2 = new BigDecimal(Double.valueOf(value2));

  35. return b1.multiply(b2).doubleValue();

  36. }

  37.  
  38. /**

  39. * 提供精确的除法运算方法div

  40. * @param value1 被除数

  41. * @param value2 除数

  42. * @param scale 精确范围

  43. * @return 两个参数的商

  44. * @throws IllegalAccessException

  45. */

  46. public static double div(double value1,double value2,int scale) throws IllegalAccessException{

  47. //如果精确范围小于0,抛出异常信息

  48. if(scale<0){

  49. throw new IllegalAccessException("精确度不能小于0");

  50. }

  51. BigDecimal b1 = new BigDecimal(Double.valueOf(value1));

  52. BigDecimal b2 = new BigDecimal(Double.valueOf(value2));

  53. return b1.divide(b2, scale).doubleValue();

  54. }

  55. }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BigDecimal的用法详解(保留两位小数,四舍五入,数字格式化,科学计数法转数字,数字里的逗号处理) 的相关文章

  • 如何使用 Apache POI API 将图像添加到 pptx 中添加的图像占位符?

    我已经预定义了带有文本和图像占位符的 pptx 模板 我如何从模板访问和修改这些占位符 我可以使用 POI pptx API 直接将图像和文本添加到幻灯片中 但如何将其添加到模板的占位符中 请参阅链接以了解如何添加占位符来创建固定模板 ht
  • Eclipse 在源代码管理中保存操作

    我们希望找到一种在签入之前执行代码标准的 轻量级 方法 我们真的很喜欢使用 Eclipse 内置的想法保存操作 go to Preferences gt gt Java gt gt Editor gt gt Save Actions 其中有
  • 使用 JPA Criteria API 进行分页的总行数

    我正在系统中为实体实现 高级搜索 功能 以便用户可以使用该实体的属性上的多个条件 eq ne gt lt 等 来搜索该实体 我正在使用 JPA 的 Criteria API 动态生成 Criteria 查询 然后使用setFirstResu
  • 这个函数(for循环)空间复杂度是O(1)还是O(n)?

    public void check 10 for string i list Integer a hashtable get i if a gt 10 hashtable remove i 这是 O 1 还是 O n 我猜测 O n 但不是
  • SAML 服务提供商 Spring Security

    当使用预先配置的服务提供者元数据时 在 Spring Security 中 是否应该有 2 个用于扩展元数据委托的 bean 定义 一份用于 IDP 元数据 一份用于 SP 元数据
  • Java:如何从转义的 URL 获取文件?

    我收到了一个定位本地文件的 URL 事实上我收到的 URL 不在我的控制范围内 URL 按照 RFC2396 中的定义进行有效转义 如何将其转换为 Java File 对象 有趣的是 URL getFile 方法返回一个字符串 而不是文件
  • OpenCV 中的 Gabor 内核参数

    我必须在我的应用程序中使用 Gabor 过滤器 但我不知道这个 OpenCV 方法参数值 我想对虹膜进行编码 启动 Gabor 过滤器并获取特征 我想对 12 组 Gabor 参数值执行此操作 然后我想计算 Hamming Dystans
  • OSGi:如果不取消服务会发生什么

    这是我获取 OSGi 服务的方式 ServiceReference reference bundleContext getServiceReference Foo class getName Foo foo Foo bundleContex
  • 运行具有外部依赖项的 Scala 脚本

    我在 Users joe scala lib 下有以下 jar commons codec 1 4 jar httpclient 4 1 1 jar httpcore 4 1 jar commons logging 1 1 1 jar ht
  • JavaFX 中具有自定义内容的 ListView

    How i can make custom ListView with JavaFx for my app I need HBox with image and 2 Labels for each line listView 您可以通过查看
  • Java 文件上传速度非常慢

    我构建了一个小型服务 它从 Android 设备接收图像并将其保存到 Amazon S3 存储桶中 代码非常简单 但是速度非常慢 事情是这样的 public synchronized static Response postCommentP
  • 如何模拟从抽象类继承的受保护子类方法?

    如何使用 Mockito 或 PowerMock 模拟由子类实现但从抽象超类继承的受保护方法 换句话说 我想在模拟 doSomethingElse 的同时测试 doSomething 方法 抽象超类 public abstract clas
  • 画透明圆,外面填充

    我有一个地图视图 我想在其上画一个圆圈以聚焦于给定区域 但我希望圆圈倒转 也就是说 圆的内部不是被填充 而是透明的 其他所有部分都被填充 请参阅这张图片了解我的意思 http i imgur com zxIMZ png 上半部分显示了我可以
  • 匿名类上的 NotSerializedException

    我有一个用于过滤项目的界面 public interface KeyValFilter extends Serializable public static final long serialVersionUID 7069537470113
  • 普罗米修斯指标 - 未找到

    我有 Spring Boot 应用程序 并且正在使用 vertx 我想监控服务和 jvm 为此我选择了 Prometheus 这是我的监控配置类 Configuration public class MonitoringConfig Bea
  • 如何知道抛出了哪个异常

    我正在对我们的代码库进行审查 有很多这样的陈述 try doSomething catch Exception e 但我想要一种方法来知道 doSomething 抛出了哪个异常 在 doSomething 的实现中没有 throw 语句
  • Cucumber Java 与 Spring Boot 集成 - Spring @Autowired 抛出 NullPointer 异常

    我正在为 Spring boot 应用程序编写 cucumber java 单元测试来测试每个功能 当我与 Spring Boot 集成时 Autowired 类抛出 NullPointer 异常 Spring Boot应用程序类 Spri
  • 游戏内的java.awt.Robot?

    我正在尝试使用下面的代码来模拟击键 当我打开记事本时 它工作正常 但当我打开我想使用它的游戏时 它没有执行任何操作 所以按键似乎不起作用 我尝试模拟鼠标移动和点击 这些动作确实有效 有谁知道如何解决这个问题 我发现这个问题 如何在游戏中使用
  • 在 RESTful Web 服务中实现注销

    我正在开发一个需要注销服务的移动应用程序 登录服务是通过数据库验证来完成的 现在我陷入了注销状态 退一步 您没有提供有关如何在应用程序中执行身份验证的详细信息 并且很难猜测您在做什么 但是 需要注意的是 在 REST 应用程序中 不能有会话
  • GUI Java 程序 - 绘图程序

    我一直试图找出我的代码有什么问题 这个想法是创建一个小的 Paint 程序并具有红色 绿色 蓝色和透明按钮 我拥有我能想到的让它工作的一切 但无法弄清楚代码有什么问题 该程序打开 然后立即关闭 import java awt import

随机推荐

  • Ceph论文译文--Ceph:一个可扩展,高性能分布式文件系统

    译者注 本文是出于作者对于ceph的兴趣 在开源中国上关注ceph翻译 没有看到ceph论文的相关翻译 索性在阅读过程中把它翻译了出来 花费了几个周末时间 翻译过程中收获颇多 现把译文分享出来 如对您有益则倍感荣幸 肯定有很多不足之处 如有
  • CentOS 7下go环境配置(超多问题)

    文章目录 1 安装Visual Code 2 获得golang安装包并安装 3 第一个GO语言程序 hello go 4 安装必要工具与插件 1 安装Visual Code 在终端中安装VScode 使用以下命令 sudo rpm impo
  • matplotlib画图、标点、打标签

    Rendering 这是想要的效果 Notes 记录几个功能的做法 函数作图 座标轴 下 左边框 移到过原点 上 右边框去掉 标出一个点 虚线描出这个点的横 纵坐标所在 给这个点打标签 图片标题 保存 Code import matplot
  • 一款优秀持久层框架Mybatis详解!

    Mybatis ssm框架 配置文件的 最好的方式 看官方文档 1 简介 1 1 什么是Mybatis MyBatis 是一款优秀的持久层框架 它支持定制化 SQL 存储过程以及高级映射 MyBatis避免了几乎所有的JDBC代码和手动设置
  • CTF-杂项与密码学总结

    杂项 01文件操作与隐写 文件类型识别 1 File命令 当文件没有后缀名或者有后缀名而无法正常打开时 根据识别出的文件类型来修改后缀名即可正常打开文件 使用场景 不知道后缀名 无法打开文件 格式 file myheart 2 winhex
  • 怎么将服务器中图片显示出来,服务器显示图片

    服务器显示图片 内容精选 换一换 将图片导入图片索引库 该图片可以是同一区域OBS桶内的图片或请求消息体里的图片 只有导入图片索引库的图片方可被搜索到 添加或搜索的图片存储在OBS的桶中时 需要对OBS的桶授权 在图像搜索服务管理控制台实例
  • sublim python提示插件

    python解释器的路径 python interpreter C Users xy AppData Local Programs Python Python36 32 python exe 去掉白框 anaconda linting fa
  • SpringCloud服务发现-ribbon

    服务消费者 api order add 通过 eureka 查找服务提供者 order add 通过服务调 组件调 提供者 创建springboot应用 添加依赖 eureka server ribbon 配置application yml
  • 智能车图像处理20-进阶篇12--正入十字补线1

    前言 希望大家多多点赞评论收藏哦 不懂的地方评论区留言就好 这篇文章主要讲述基本的正入十字补线方法 场景图 效果图 一 函数主体 思路讲解 void buzhongxian2 secondmid 0 if
  • 基于减法优化SABO优化ELM(SABO-ELM)负荷预测(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码及数据 1 概述 基于减法优化的 SABO ELM Sub
  • IDEA反编译jar包源码

    1 maven 项目查看jar源码 如何在idea中查看jar包源码 文章目录 准备jar包 idea打开文件夹 最后一步 准备jar包 例如 我准备看resin的jar 在桌面准备了一份 idea打开文件夹 在idea中file gt o
  • spring redis 永不过期_Springboot-Redis分布式锁

    随着现在分布式架构越来越盛行 在很多场景下需要使用到分布式锁 分布式锁的实现有很多种 比如基于数据库 zookeeper 等 本文主要介绍使用 Redis 做分布式锁的方式 并封装成spring boot starter 方便使用 一 Re
  • C++输出中文字符 C/C++多字节字符与宽字符的输出

    原文 http www cnblogs com lixiaohui ambition archive 2012 07 17 2596490 html C 输出中文字符 1 cout 场景1 在源文件中定义 const char str 中文
  • (一)TiDB简介

    TiDB是PingCAP公司自主设计 研发的开放源分布式关系型数据库 NewSQL 是一个款同时支持在线事务处理与在线分析处理 Hybird Transactional and Analytical Processing HTAP 的融合型
  • Android Studio JNI开发入门教程

    概述 在Andorid Studio不支持JNI开发之前大家一般都是使用Eclipse开发JNI 各种配置让人觉得很蛋疼 从Andorid Studio支持JNI开发后 让我们开发JNI变的如此简单 下面我就介绍一下Android Stud
  • Python+Selenium_UI自动化操作(1)——将浏览器最大化

    UI自动化 最大化浏览器 语法 maximize window unittest框架执行顺序 1 先执行setUp 做测试数据准备 2 执行测试用例方法testXXXX 测试用例都是以test开头的方法 可以有多个测试用例 3 所有的测试用
  • LInux脚本- 将一个路径下的前500个文件复制到另一个路径下

    需求 从 home majn llvm project extract main 路径下复制前500个 c 文件到 home majn llvm project extract main 500 目录 以下是一个用于实现该功能的 Bash
  • 将本地的代码上传到github ,Github提交更改的代码,

    1 将本地的代码上传到github 首先你需要一个github账号 所有还没有的话先去注册吧 https github com 我们使用git需要先安装git工具 这里给出下载地址 下载后一路直接安装即可 https git for win
  • OpenvSwitch实现简单VLAN

    需求 现有拓扑结构如下的网络结构 s1 s4为交换机 h1 h9为主机 现欲让单数主机 h1 h3 h5 h7 h9 之间互相能ping通 双数主机之间互相能够ping通 但单数和双数主机之间不能访问 拓扑结构 s1
  • BigDecimal的用法详解(保留两位小数,四舍五入,数字格式化,科学计数法转数字,数字里的逗号处理)

    原文地址 https blog csdn net ochangwen article details 51531866 一 简介 Java在java math包中提供的API类BigDecimal 用来对超过16位有效位的数进行精确的运算