Java中的BigDecimal,你真的会用吗?

一、BigDecimal概述

Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数,但在实际应用中,可能需要对更大或者更小的数进行运算和处理。

一般情况下,对于那些不需要准确计算精度的数字,我们可以直接使用Float和Double处理,但是Double.valueOf(String) 和Float.valueOf(String)会丢失精度。所以开发中,如果我们需要精确计算的结果,则必须使用BigDecimal类来操作。

BigDecimal所创建的是对象,故我们不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法。方法中的参数也必须是BigDecimal的对象。构造器是类的特殊方法,专门用来创建对象,特别是带有参数的对象。

二、BigDecimal常用构造函数

2.1、常用构造函数

BigDecimal(int)

创建一个具有参数所指定整数值的对象

BigDecimal(double)

创建一个具有参数所指定双精度值的对象

BigDecimal(long)

创建一个具有参数所指定长整数值的对象

BigDecimal(String)

创建一个具有参数所指定以字符串表示的数值的对象

2.2、使用问题分析

使用示例:
BigDecimal a =new BigDecimal(0.1);
System.out.println(“a values is:”+a);
System.out.println("=====================");
BigDecimal b =new BigDecimal(“0.1”);
System.out.println(“b values is:”+b);

结果示例:
a values is:0.1000000000000000055511151231257827021181583404541015625

b values is:0.1

原因分析:

1)参数类型为double的构造方法的结果有一定的不可预知性。有人可能认为在Java中写入newBigDecimal(0.1)所创建的BigDecimal正好等于 0.1(非标度值 1,其标度为 1),但是它实际上等于0.1000000000000000055511151231257827021181583404541015625。这是因为0.1无法准确地表示为 double(或者说对于该情况,不能表示为任何有限长度的二进制小数)。这样,传入到构造方法的值不会正好等于 0.1(虽然表面上等于该值)。

2)String 构造方法是完全可预知的:写入 newBigDecimal(“0.1”) 将创建一个 BigDecimal,它正好等于预期的 0.1。因此,比较而言, 通常建议优先使用String构造方法。

3)当double必须用作BigDecimal的源时,请注意,此构造方法提供了一个准确转换;它不提供与以下操作相同的结果:先使用Double.toString(double)方法,然后使用BigDecimal(String)构造方法,将double转换为String。要获取该结果,请使用static valueOf(double)方法。Java知音公众号内回复“面试题聚合”,送你一份面试题宝典

三、BigDecimal常用方法详解

3.1、常用方法

add(BigDecimal)

BigDecimal对象中的值相加,返回BigDecimal对象

subtract(BigDecimal)

BigDecimal对象中的值相减,返回BigDecimal对象

multiply(BigDecimal)

BigDecimal对象中的值相乘,返回BigDecimal对象

divide(BigDecimal)

BigDecimal对象中的值相除,返回BigDecimal对象

toString()

将BigDecimal对象中的值转换成字符串

doubleValue()

将BigDecimal对象中的值转换成双精度数

floatValue()

将BigDecimal对象中的值转换成单精度数

longValue()

将BigDecimal对象中的值转换成长整数

intValue()

将BigDecimal对象中的值转换成整数

3.2、BigDecimal大小比较

java中对BigDecimal比较大小一般用的是bigdemical的compareTo方法
int a = bigdemical.compareTo(bigdemical2)

返回结果分析:
a = -1,表示bigdemical小于bigdemical2;
a = 0,表示bigdemical等于bigdemical2;
a = 1,表示bigdemical大于bigdemical2;

举例:a大于等于b
new bigdemica(a).compareTo(new bigdemical(b)) >= 0

四、BigDecimal格式化

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

以利用BigDecimal对货币和百分比格式化为例。首先,创建BigDecimal对象,进行BigDecimal的算术运算后,分别建立对货币和百分比格式化的引用,最后利用BigDecimal对象作为format()方法的参数,输出其格式化的货币值和百分比。
NumberFormat currency = NumberFormat.getCurrencyInstance(); //建立货币格式化引用
NumberFormat percent = NumberFormat.getPercentInstance(); //建立百分比格式化引用
percent.setMaximumFractionDigits(3); //百分比小数点最多3位

BigDecimal loanAmount = new BigDecimal(“15000.48”); //贷款金额
BigDecimal interestRate = new BigDecimal(“0.008”); //利率
BigDecimal interest = loanAmount.multiply(interestRate); //相乘

System.out.println(“贷款金额:t” + currency.format(loanAmount));
System.out.println(“利率:t” + percent.format(interestRate));
System.out.println(“利息:t” + currency.format(interest));

结果:
贷款金额: ¥15,000.48 利率: 0.8% 利息: ¥120.00

BigDecimal格式化保留2为小数,不足则补0:
public class NumberFormat {

public static void main(String[] s){System.out.println(formatToNumber(new BigDecimal("3.435")));System.out.println(formatToNumber(new BigDecimal(0)));System.out.println(formatToNumber(new BigDecimal("0.00")));System.out.println(formatToNumber(new BigDecimal("0.001")));System.out.println(formatToNumber(new BigDecimal("0.006")));System.out.println(formatToNumber(new BigDecimal("0.206")));
}
/*** @desc 1.0~1之间的BigDecimal小数,格式化后失去前面的0,则前面直接加上0。* 2.传入的参数等于0,则直接返回字符串"0.00"* 3.大于1的小数,直接格式化返回字符串* @param obj传入的小数* @return*/
public static String formatToNumber(BigDecimal obj) {DecimalFormat df = new DecimalFormat("#.00");if(obj.compareTo(BigDecimal.ZERO)==0) {return "0.00";}else if(obj.compareTo(BigDecimal.ZERO)>0&&obj.compareTo(new BigDecimal(1))<0){return "0"+df.format(obj).toString();}else {return df.format(obj).toString();}
}

}

结果为:
3.44
0.00
0.00
0.00
0.01
0.21

五、BigDecimal常见异常

5.1、除法的时候出现异常

java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result

原因分析:

通过BigDecimal的divide方法进行除法时当不整除,出现无限循环小数时,就会抛异常:java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.

解决方法:

divide方法设置精确的小数点,如:divide(xxxxx,2)

六、BigDecimal总结

6.1、总结

在需要精确的小数计算时再使用BigDecimal,BigDecimal的性能比double和float差,在处理庞大,复杂的运算时尤为明显。故一般精度的计算没必要使用BigDecimal。
尽量使用参数类型为String的构造函数。

BigDecimal都是不可变的(immutable)的, 在进行每一次四则运算时,都会产生一个新的对象 ,所以在做加减乘除运算时要记得要保存操作后的值。

6.2、工具类推荐
package com.vivo.ars.util;
import java.math.BigDecimal;

/**

  • 用于高精确处理常用的数学运算
    */
    public class ArithmeticUtils {
    //默认除法运算精度
    private static final int DEF_DIV_SCALE = 10;

    /**

    • 提供精确的加法运算
    • @param v1 被加数
    • @param v2 加数
    • @return 两个参数的和
      */

    public static double add(double v1, double v2) {
    BigDecimal b1 = new BigDecimal(Double.toString(v1));
    BigDecimal b2 = new BigDecimal(Double.toString(v2));
    return b1.add(b2).doubleValue();
    }

    /**

    • 提供精确的加法运算
    • @param v1 被加数
    • @param v2 加数
    • @return 两个参数的和
      */
      public static BigDecimal add(String v1, String v2) {
      BigDecimal b1 = new BigDecimal(v1);
      BigDecimal b2 = new BigDecimal(v2);
      return b1.add(b2);
      }

    /**

    • 提供精确的加法运算
    • @param v1 被加数
    • @param v2 加数
    • @param scale 保留scale 位小数
    • @return 两个参数的和
      */
      public static String add(String v1, String v2, int scale) {
      if (scale < 0) {
      throw new IllegalArgumentException(
      “The scale must be a positive integer or zero”);
      }
      BigDecimal b1 = new BigDecimal(v1);
      BigDecimal b2 = new BigDecimal(v2);
      return b1.add(b2).setScale(scale, BigDecimal.ROUND_HALF_UP).toString();
      }

    /**

    • 提供精确的减法运算
    • @param v1 被减数
    • @param v2 减数
    • @return 两个参数的差
      */
      public static double sub(double v1, double v2) {
      BigDecimal b1 = new BigDecimal(Double.toString(v1));
      BigDecimal b2 = new BigDecimal(Double.toString(v2));
      return b1.subtract(b2).doubleValue();
      }

    /**

    • 提供精确的减法运算。
    • @param v1 被减数
    • @param v2 减数
    • @return 两个参数的差
      */
      public static BigDecimal sub(String v1, String v2) {
      BigDecimal b1 = new BigDecimal(v1);
      BigDecimal b2 = new BigDecimal(v2);
      return b1.subtract(b2);
      }

    /**

    • 提供精确的减法运算
    • @param v1 被减数
    • @param v2 减数
    • @param scale 保留scale 位小数
    • @return 两个参数的差
      */
      public static String sub(String v1, String v2, int scale) {
      if (scale < 0) {
      throw new IllegalArgumentException(
      “The scale must be a positive integer or zero”);
      }
      BigDecimal b1 = new BigDecimal(v1);
      BigDecimal b2 = new BigDecimal(v2);
      return b1.subtract(b2).setScale(scale, BigDecimal.ROUND_HALF_UP).toString();
      }

    /**

    • 提供精确的乘法运算
    • @param v1 被乘数
    • @param v2 乘数
    • @return 两个参数的积
      */
      public static double mul(double v1, double v2) {
      BigDecimal b1 = new BigDecimal(Double.toString(v1));
      BigDecimal b2 = new BigDecimal(Double.toString(v2));
      return b1.multiply(b2).doubleValue();
      }

    /**

    • 提供精确的乘法运算
    • @param v1 被乘数
    • @param v2 乘数
    • @return 两个参数的积
      */
      public static BigDecimal mul(String v1, String v2) {
      BigDecimal b1 = new BigDecimal(v1);
      BigDecimal b2 = new BigDecimal(v2);
      return b1.multiply(b2);
      }

    /**

    • 提供精确的乘法运算
    • @param v1 被乘数
    • @param v2 乘数
    • @param scale 保留scale 位小数
    • @return 两个参数的积
      */
      public static double mul(double v1, double v2, int scale) {
      BigDecimal b1 = new BigDecimal(Double.toString(v1));
      BigDecimal b2 = new BigDecimal(Double.toString(v2));
      return round(b1.multiply(b2).doubleValue(), scale);
      }

    /**

    • 提供精确的乘法运算
    • @param v1 被乘数
    • @param v2 乘数
    • @param scale 保留scale 位小数
    • @return 两个参数的积
      */
      public static String mul(String v1, String v2, int scale) {
      if (scale < 0) {
      throw new IllegalArgumentException(
      “The scale must be a positive integer or zero”);
      }
      BigDecimal b1 = new BigDecimal(v1);
      BigDecimal b2 = new BigDecimal(v2);
      return b1.multiply(b2).setScale(scale, BigDecimal.ROUND_HALF_UP).toString();
      }

    /**

    • 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到
    • 小数点以后10位,以后的数字四舍五入
    • @param v1 被除数
    • @param v2 除数
    • @return 两个参数的商
      */

    public static double div(double v1, double v2) {
    return div(v1, v2, DEF_DIV_SCALE);
    }

    /**

    • 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指
    • 定精度,以后的数字四舍五入
    • @param v1 被除数
    • @param v2 除数
    • @param scale 表示表示需要精确到小数点以后几位。
    • @return 两个参数的商
      */
      public static double div(double v1, double v2, int scale) {
      if (scale < 0) {
      throw new IllegalArgumentException(“The scale must be a positive integer or zero”);
      }
      BigDecimal b1 = new BigDecimal(Double.toString(v1));
      BigDecimal b2 = new BigDecimal(Double.toString(v2));
      return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
      }

    /**

    • 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指
    • 定精度,以后的数字四舍五入
    • @param v1 被除数
    • @param v2 除数
    • @param scale 表示需要精确到小数点以后几位
    • @return 两个参数的商
      */
      public static String div(String v1, String v2, int scale) {
      if (scale < 0) {
      throw new IllegalArgumentException(“The scale must be a positive integer or zero”);
      }
      BigDecimal b1 = new BigDecimal(v1);
      BigDecimal b2 = new BigDecimal(v1);
      return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).toString();
      }

    /**

    • 提供精确的小数位四舍五入处理
    • @param v 需要四舍五入的数字
    • @param scale 小数点后保留几位
    • @return 四舍五入后的结果
      */
      public static double round(double v, int scale) {
      if (scale < 0) {
      throw new IllegalArgumentException(“The scale must be a positive integer or zero”);
      }
      BigDecimal b = new BigDecimal(Double.toString(v));
      return b.setScale(scale, BigDecimal.ROUND_HALF_UP).doubleValue();
      }

    /**

    • 提供精确的小数位四舍五入处理
    • @param v 需要四舍五入的数字
    • @param scale 小数点后保留几位
    • @return 四舍五入后的结果
      */
      public static String round(String v, int scale) {
      if (scale < 0) {
      throw new IllegalArgumentException(
      “The scale must be a positive integer or zero”);
      }
      BigDecimal b = new BigDecimal(v);
      return b.setScale(scale, BigDecimal.ROUND_HALF_UP).toString();
      }

    /**

    • 取余数
    • @param v1 被除数
    • @param v2 除数
    • @param scale 小数点后保留几位
    • @return 余数
      */
      public static String remainder(String v1, String v2, int scale) {
      if (scale < 0) {
      throw new IllegalArgumentException(
      “The scale must be a positive integer or zero”);
      }
      BigDecimal b1 = new BigDecimal(v1);
      BigDecimal b2 = new BigDecimal(v2);
      return b1.remainder(b2).setScale(scale, BigDecimal.ROUND_HALF_UP).toString();
      }

    /**

    • 取余数 BigDecimal
    • @param v1 被除数
    • @param v2 除数
    • @param scale 小数点后保留几位
    • @return 余数
      */
      public static BigDecimal remainder(BigDecimal v1, BigDecimal v2, int scale) {
      if (scale < 0) {
      throw new IllegalArgumentException(
      “The scale must be a positive integer or zero”);
      }
      return v1.remainder(v2).setScale(scale, BigDecimal.ROUND_HALF_UP);
      }

    /**

    • 比较大小
    • @param v1 被比较数
    • @param v2 比较数
    • @return 如果v1 大于v2 则 返回true 否则false
      */
      public static boolean compare(String v1, String v2) {
      BigDecimal b1 = new BigDecimal(v1);
      BigDecimal b2 = new BigDecimal(v2);
      int bj = b1.compareTo(b2);
      boolean res;
      if (bj > 0)
      res = true;
      else
      res = false;
      return res;
      }
      }

END

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 如何管理自己刚租用的服务器?

    当你租用了一台服务器,无论你是否懂得,都应该学着去管理服务器,不然到时候会影响到网站打不开等情况。今天就来为大家介绍下服务器租用后如何管理,一起看看吧~ 1.不要在一进服务器就开始下载东西或者在里面浏览网站甚至视频聊天等,服务器不是台式机,他不是用来做这些的。…...

    2024/3/14 3:09:39
  2. 苏州新导特殊RFID资产管理离位报警系统

    一、需求分析随着军队及武警对安全防范工作的重视,为了加强部队安全防范工作,防止特殊资产(执勤枪支)被抢、哨兵被袭击和哨兵携特殊资产逃离部队等情况的发生,加大对岗哨特殊资产(执勤枪支)的监督管理力度,有效预防特殊资产丢失,杜绝涉枪重大恶性案件发生。结合军队和武…...

    2024/3/22 18:38:55
  3. 量化投资趋势解构

    作者:查理冬明 来源:量化投资学习CQF在中国式对冲基金雏形期,套利交易多元模型进入探索初期,尤其是相对于国外更为成熟的机制而言,因此,业绩比拼关键是两点:一是模型的多元化,二是推出模型的速度和修正。众所周知量化交易在国外已经得到了广泛普遍的运用,国内也是在…...

    2024/3/14 3:09:31
  4. 六星教育浅谈,2020是机遇还是挑战?PHP程序员如何高薪就业?

    从做猎头的朋友那里了解到,因受疫情的影响,2020某些企业用于招聘方面的费用缩减,招聘需求没有太急,采取宁缺毋滥的形式。 因此,不得不说,今年的招聘形式相对而言,是比较严峻。 但,当我深入了解后,才发现这其中的原因。疫情的发生,对餐饮行业、娱乐行业、生产制造业等…...

    2024/3/14 9:33:41
  5. 田溯宁荐书 | 《果壳中的5G》,破解认知5G的「坚果硬壳」

    本文来源:宽带资本公众号(ID:bjkdzb)在数字化产业时代,对于通信技术的吸取,将变得更为关键。本书作者基于自己30多年的电信行业实践经验,详细阐述了通信行业的历史演进过程,并从技术理想、社会责任及5G时代将带来的机会与挑战等诸多方面,广泛地介绍了未来通信技术与未…...

    2024/3/14 9:33:21
  6. promise基本用法

    promise基本用法 let promise = new Promise((resolve, reject)=>{ reject(“拒绝了”); }); promise.then((data)=>{ console.log(‘success’ + data); }, (error)=>{ console.log(error) }); 对象不受外界影响,初始状态为pending(等待中),结果的状态为resolve和…...

    2024/3/14 9:33:27
  7. flask创建虚拟环境

    首先安装pipenv 1.pip install pipenv 创建虚拟环境 2.pipenv install 完成后运行pipenv shell 安装flask pipenv install flask 设置环境变量 pipenv install python-dotenv 安装完成后在 根目录下创建两个文件: .env 和.flaskenv .flaskenv 存储公开环境变量 .env 存储敏感信…...

    2024/3/14 9:33:18
  8. 面试题答案

    ​​​​​​​8.java 事件机制包括三个部分:事件、事件监听器、事件源。事件。一般继承自 java.util.EventObject 类,封装了事件源对象及跟事件相关的信息。import java.util.EventObject;/*** @Author: jinliang* @Version: V1.0* @Date: 2020/6/3 14:44* @Description:事件…...

    2024/3/14 9:33:29
  9. Phpspreadsheet中文文档2(翻译软件版)

    由于phpoffice/phpexcel(此包已被放弃,不再维护。作者建议改用phpoffice/phpspreadsheet包。) 最近开始使用Phpspreadsheet,发现中文文档不全。自己英文水平一般,又比较着急开发。所以贴上google翻译版,着急的朋友可以先凑合看看,英文底子好的同学可以直接忽略本帖。 本…...

    2024/3/14 9:33:29
  10. linux中连接数过多(TIME_WAIT/CLOSE_WAIT)读这一篇就够了

    参考:https://www.phpmianshi.com/?id=106根据TCP/IP介绍,socket大概包含10个连接状态。我们平常工作中遇到的,除了针对SYN的拒绝服务攻击,如果有异常,大概率是TIME_WAIT和CLOSE_WAIT的问题。 TIME_WAIT一般通过优化内核参数能够解决;CLOSE_WAIT一般是由于程序编写不合理…...

    2024/3/14 9:33:30
  11. MBP利用双网卡同时连内外网

    使用双网卡同时连通内网和外网1、查看一下路由表,了解下基本情况打开终端,输入netstat -rt查看路由表的配置情况,我的如下参数说明:第一列:Destination,目标地,意思是:后面的参数代表着,如果前往这个ip的话,应该如何分配网关,网卡等,以及状态信息,都是针对前往这个…...

    2024/3/14 9:33:16
  12. 至联云讲解《下一代互联网是怎样的?》

    在当今这个叫做Web的事物诞生之前,实际上还有个时代是互联网,互联网发明于70年代,当时正是美苏冷战的高峰期,美国有一台中央计算机控制其核武器,美国正担心,一次攻击就可能使该计算机系统瘫痪,使得他们无法进行反击。因此,美国政府建立了一个去中心化的系统,让许多的计…...

    2024/3/14 1:04:36
  13. 序设计思维与实践 CSP-M4

    A: 题意: 题目描述 这一天,TT因为疫情在家憋得难受,在云吸猫一小时后,TT决定去附近自家的山头游玩。 TT来到一个小湖边,看到了许多在湖边嬉戏的鸭子,TT顿生羡慕。此时他发现每一只鸭子都不 一样,或羽毛不同,或性格不同。TT在脑子里开了一个map<鸭子,整数> tong,…...

    2024/3/18 14:38:49
  14. 为解决黑客入侵威胁,VMware收购这家网络安全公司

    据外媒报道:VMware成功收购网络安全公司Lastline。自2012年推出以来,Lastline根据Crunchbase的数据,该公司筹集了约5,220万美元。投资者包括Thomvest Ventures,该公司在2017年领投了该公司2850万美元的C轮融资; Redpoint和e.ventures,领导公司2013年的融资;梭子鱼网络公司…...

    2024/3/14 1:04:34
  15. 前端面试——那些web前端经典面试题大全及答案(JQuery部分)

    阅读目录JQuery部分 HTML/CSS部分 JavaScript部分 开发及性能优化部分JQuery部分相关知识 1.jQuery库中的$()是什么? ()函数时Jquery()函数的别称。 ()函数用于将任何对象包裹成Jquery兑现个,接着你就被允许调用定义在Jquery对象上的多个不同方法。你可以将一个选择器字符串…...

    2024/3/14 1:04:33
  16. 短视频全套源码Android获取视频首帧图片或第n秒的图片

    这里介绍如何获取视频首帧或者第n秒的图片并保存在本地,直接上代码: import android.graphics.Bitmap; import android.media.MediaMetadataRetriever; import android.os.Bundle; import android.os.Environment; import android.support.v7.app.AppCompatActivity; import …...

    2024/3/24 7:23:49
  17. JAVA使用Lombok

    Lombok会自动插入编辑器和构建工具中,在以前的Java项目中,充斥着太多不友好的代码:getter/setter/toString;异常处理;I/O流的关闭操作等等,这些样板代码既没有技术含量,又影响着代码的美观,Lombok提供了一组有用的注释,用来消除Java类中的大量样板代码。Lombok使用方法…...

    2024/3/14 3:09:18
  18. Hexo博文加密思路总结

    一、概述博客网站的运行有一段时间了,随着博文数量的不断增多、文章类型的不断丰富,于是逐渐的对文章的隐私性有了要求。有些文章可能是自己的私人日记,不便于公开发表,但是有时候又需要对一些亲密的人开放,因此,就需要对这些文章加密处理,然后向外提供密码访问。(欢迎在…...

    2024/3/14 9:33:18
  19. s的循环子串 kmp中next数组

    题目链接:洛谷p4391 题目描述 给你一个字符串,它是由某个字符串不断自我连接形成的。 但是这个字符串是不确定的,现在只想知道它的最短长度是多少.输入格式 第一行给出字符串的长度,1 < L ≤ 1,000,000.第二行给出一个字符串,全由小写字母组成.输出格式 输出最短的长度输…...

    2024/3/14 9:33:15
  20. C# 自定义控件

    public delegate void MyDelegate(object sender, EventArgs e);//建立委托public event MyDelegate myEven_click; //委托事件public int a = 0;private void button1_Click(object sender, EventArgs e)//点击自定义控件按钮{a++;if (myEven_click != null) { myEven_click(s…...

    2024/3/14 9:33:33

最新文章

  1. 单源最短路径

    题目描述 给定一个 n 个点&#xff0c;m 条有向边的带非负权图&#xff0c;请你计算从 s 出发&#xff0c;到每个点的距离。 数据保证你能从 s 出发到任意点。 输入格式 第一行为三个正整数n,m,s。 第二行起 m 行&#xff0c;每行三个非负整数 ui​,vi​,wi​&#xff0c;表…...

    2024/3/29 12:59:32
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 什么是数据仓库

    数据仓库定义 数据仓库,按照传统的定义,数据仓库是一个面向主题的、集成的、持久的(非易失的)、反映历史变化(随时间变化),用来支持管理人员决策的数据集合。 通俗讲,企业希望能够更快得处理比较多的数据,数据仓库由此诞生。 就像是企业的财务系统。各个部门(面向主…...

    2024/3/28 5:59:06
  4. 第四章-生产者-顺序延迟批量消息发送

    4.1 顺序消息 先引用一段官网对顺序消息的介绍 顺序消息是一种对消息发送和消费顺序有严格要求的消息。 对于一个指定的Topic&#xff0c;消息严格按照先进先出&#xff08;FIFO&#xff09;的原则进行消息发布和消费&#xff0c;即先发布的消息先消费&#xff0c;后发布的消息…...

    2024/3/28 18:04:14
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/3/27 10:21:24
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/3/24 20:11:25
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/3/29 2:45:46
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/3/24 20:11:23
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/3/29 5:19:52
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/3/28 17:01:12
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/3/29 11:11:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/3/29 1:13:26
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/3/29 8:28:16
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/3/29 7:41:19
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/3/24 20:11:18
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/3/29 9:57:23
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/3/29 0:49:46
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/3/24 20:11:15
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/3/27 7:12:50
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/3/24 20:11:13
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/3/26 11:21:23
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/3/28 18:26:34
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/3/28 12:42:28
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/3/28 20:09:10
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57