java练习代码之BigDecimal操作

[双体系练习]Java基础练习题1 因为练习是word,本文我只是写了里面的部分内容,如果想查阅完整内容或者获取word以及PDF,请 关注微信公众号 乖乖狼科技 发送口令 akcd T1 静态代码块中不能? · 【D 】 A. 初始化静态变量 B. 调用静态方法 C. new对象 D. 直接调用类中实例方法(实例方法是非静态方法,非静态的无法直接调用) 注意:在静态代码块中创建的... 阅读详情

java练习代码之BigDecimal操作

import org.junit.Test;

import java.math.BigDecimal;

/**
 * Created by shiqiang on 2018/1/11.
 */
public class Demo extends BaseJunit{

    @Test
    public void getF() {
        Character c = 'a';
        System.out.println(new BigDecimal(c));
        BigDecimal bigDecimal = BigDecimalUtilDemo.subtraction(10, 2, new BigDecimalUtilDemoBase.BigDecimalSub() {
            @Override
            public BigDecimal sub(Object var1, Object var2) {
                return BigDecimalUtilDemoBase.toBigDecimal(var1).subtract(BigDecimalUtilDemoBase.toBigDecimal(var2));
            }
        });
        System.out.println(bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP));

        BigDecimal bb = BigDecimalUtilDemo.multi.operation(BigDecimalUtilDemoBase.getBigDecimal(1),
                BigDecimalUtilDemoBase.getBigDecimal(10));
        System.out.println(bb);
    }

}
import org.junit.Before;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class BaseJunit {
    public Logger LOGGER = LoggerFactory.getLogger(BaseJunit.class);

    @Before
    public void before() {
        LOGGER.info("before");
    }
}
import java.math.BigDecimal;

/**
 * Created by shiqiang on 2018/1/11.
 */
public class BigDecimalUtilDemo{

    public static BigDecimal add(Integer var1, Integer var2) {
        return add(BigDecimalUtilDemoBase.getBigDecimal(var1), BigDecimalUtilDemoBase.getBigDecimal(var2));
    }

    public static BigDecimal add(Long var1, Long var2) {
        return add(BigDecimalUtilDemoBase.getBigDecimal(var1), BigDecimalUtilDemoBase.getBigDecimal(var2));
    }

    public static BigDecimal add(Double var1, Double var2) {
        return add(BigDecimalUtilDemoBase.getBigDecimal(var1), BigDecimalUtilDemoBase.getBigDecimal(var2));
    }

    public static BigDecimal add(Float var1, Float var2) {
        return add(BigDecimalUtilDemoBase.getBigDecimal(var1), BigDecimalUtilDemoBase.getBigDecimal(var2));
    }

    public static BigDecimal add(Short var1, Short var2) {
        return add(BigDecimalUtilDemoBase.getBigDecimal(var1), BigDecimalUtilDemoBase.getBigDecimal(var2));
    }

    public static BigDecimal add(Byte var1, Byte var2) {
        return add(BigDecimalUtilDemoBase.getBigDecimal(var1), BigDecimalUtilDemoBase.getBigDecimal(var2));
    }

    public static BigDecimal add(Character var1, Character var2) {
        return add(BigDecimalUtilDemoBase.getBigDecimal(var1), BigDecimalUtilDemoBase.getBigDecimal(var2));
    }

    public static BigDecimal add(String var1, String var2) {
        return add(BigDecimalUtilDemoBase.getBigDecimal(var1), BigDecimalUtilDemoBase.getBigDecimal(var2));
    }

    /**
     * 加法基层
     * @param var1 BigDecimal
     * @param var2 BigDecimal
     * @return 和
     */
    public static BigDecimal add(BigDecimal var1, BigDecimal var2) {
        var1 = (var1 == null ? BigDecimalUtilDemoBase.BIGDECIMAL_ZERO : var1);
        var2 = (var2 == null ? BigDecimalUtilDemoBase.BIGDECIMAL_ZERO : var2);
        return var1.add(var2);
    }


    /**
     * 减法, 行为参数化一个
     * @param var1
     * @param var2
     * @param b
     * @return
     * 这是不适用于工具类,在这里不是很好(因为还需要自己实现操作)
     */
    public static BigDecimal subtraction(Object var1, Object var2,BigDecimalUtilDemoBase.BigDecimalSub b) {
        return b.sub(var1, var2);
    }

    /**
     * ladmba 表达式进行行为参数化 函数式处理
     * 这是不适用于工具类,在这里不是很好,(因为还要自己实现操作)
     */
    public static BigDecimalUtilDemoBase.
        BigdecimalOperation<BigDecimal, BigDecimal, BigDecimal> multi =
        (BigDecimal var1, BigDecimal var2) -> var1.multiply(var2);

}
import java.math.BigDecimal;

/**
 * Created by shiqiang on 2018/1/11.
 */
public abstract class BigDecimalUtilDemoBase {

    public static final BigDecimal BIGDECIMAL_ZERO = new BigDecimal(0);

    public static BigDecimal getBigDecimal(Integer var) {
        return toBigDecimal(var);
    }

    public static BigDecimal getBigDecimal(Long var) {
        return toBigDecimal(var);
    }

    public static BigDecimal getBigDecimal(Double var) {
        return toBigDecimal(var);
    }

    public static BigDecimal getBigDecimal(Float var) {
        return toBigDecimal(var);
    }

    public static BigDecimal getBigDecimal(Character var) {
        return toBigDecimal(var);
    }

    public static BigDecimal getBigDecimal(Byte var) {
        return toBigDecimal(var);
    }

    public static BigDecimal getBigDecimal(Short var) {
        return toBigDecimal(var);
    }

    public static BigDecimal getBigDecimal(String var) {
        BigDecimal var1 = null;
        try {
            var1 = (var == null? BIGDECIMAL_ZERO : new BigDecimal(var));
        } catch (NumberFormatException e) {
            System.err.println("请正确输入数字: " + e);
            e.printStackTrace();
        }
        return var1;
    }

    public static BigDecimal toBigDecimal(Object var) {
        return var == null? BIGDECIMAL_ZERO : new BigDecimal(String.valueOf(var));
    }
    interface BigDecimalSub {
        BigDecimal sub (Object var1, Object var2);
    }

    @FunctionalInterface
    interface BigdecimalOperation<F, R, T> {
        T operation(F var1, R var2);
    }
}

注:纯属练习玩而已!!!

【Java】编程练习:简易计算器(BigDecimal 及其常用操作) 作业要求 编写Java GUI程序,实现一个简单计算器。要求如下: (1)设计的界面如下图所示:窗体的标题栏显示“模拟计算器—江海大”,1个文本框用于显示输入字符和计算结果;20个按钮控件作为字符输入按键或者功能按键。 (2)计算功能:实现加、减、乘、除等双目运算,开平方、百分数等单目运算; (3)辅助功能:按钮“C”清空文本框;按钮“←”退格,删除文本框中最右边的一个字符。 代码 为了锻炼大家阅读代码的能力,本篇博文不包含代码的详细注释,只说明几点: 1、Java 不像 C / C++ 那样具有手动释放 阅读详情

相关推荐

USB3.0一致性测试方案

为各测试项目具体测试结果包括脉冲串突发时间、脉冲串重复时间、时钟周期以及眼图等完整USB3.0测试项目,工程师可以看到各项测试的具体结果方便观察。RIGOL 提供了一套完善的工具,包括数字示波器、专业的测试夹具以及全自动一致性测试软件,使得USB 3.0设备设计人员能够高效精确地进行信号捕捉、测试与分析。报告第二部分测试摘要,在此可以看到USB3.0测试所有测试项目,并且可以观看到测试是否正常,可以帮助工程师更好的判断测试结果。,以简化下载、存储以及对于多媒体的大量内容的共享。

2409_87378937的博客 2531

java 中getBigDecimal

函数,构造函数相关视频讲解:微积分基本想法数组-Go代码演示Java 中 BigDecimal 的使用与示例 在Java编程中,BigDecimal 类是一个用于精确计算的类,它提供了一种表示任意精度定点和浮点数的方法。BigDecimal 类是 java.math 包的一部分,它允许程序员进行精确的十进制运算,这在处...

weixin_42088425的博客 259

免疫治疗新思路:用COMPASS算法挖掘单细胞数据中的代谢靶点(含差异分析技巧)

本文介绍了如何利用COMPASS算法从单细胞转录组数据中系统推断免疫细胞的代谢活性,为肿瘤免疫治疗提供新的靶点发现思路。文章详细阐述了COMPASS结合流平衡分析的核心原理,并提供了从差异分析到可成药性评估的完整转化路径,旨在帮助研究者精准定位代谢弱点,开发新型免疫代谢疗法。

weixin_29275257的博客 368

Java之BigDecimal的坑

采坑处: BigDecimal bd =new BigDecimal(0.1); System.out.println("结果是:" + bd); 结果是:158.740000000000009094947017729282379150390625 原因是: 1)参数类型为double的构造方法的结果有一定的不可预知性。有人可能认为在Java中写入newBigDecima...

weixin_42831237的博客 491

从零开始:HLW8110电能计量IC的硬件设计与软件调试全攻略

本文详细介绍了HLW8110电能计量IC的硬件设计与软件调试全流程,涵盖核心特性、抗干扰设计、UART通信协议及校准方法。通过实战案例和优化技巧,帮助工程师快速掌握高精度交流测量技术,适用于智能插座、充电桩等应用场景。

p5l2m9n4o6q的博客 577

【数字IC基础】DFT(Design For Test)可测性设计

【数字IC基础】DFT(Design For Test)可测性设计

努力,加油每一天鸭~ 3467

BigDecimal的运算及常用知识

/** 多个BigDecimal数相加和 @param i @param arg @return */ public static BigDecimal getBigDecimalSum(BigDecimal i, BigDecimal… arg) { BigDecimal sum = i; for (BigDecimal b : arg) { sum = sum.add(b); } return sum; } /** 差 @param i @param arg @return */ public

jiwangyi的博客 1086

MobileFusion:基于结构重参数化的移动端红外可见光图像融合方法

MobileFusion提出了一种轻量化的红外与可见光图像融合框架,通过结构重参数化技术实现移动端实时部署。该方法包含可重参数多分支卷积(RepMBConv)、轻量化上下文感知注意力(LCAA)和重参数前馈网络(RepFFN)三大模块,在训练时保留多分支结构增强特征学习,推理时合并为单路算子提升效率。实验表明,MobileFusion在MSRS、FMB等数据集上实现了融合质量与推理速度的平衡,参数量仅4000,在边缘设备上也能高效运行,为资源受限场景提供了实用解决方案。代码已开源。

毕竟是Shy哥 138

JAVA大数处理(BigInteger,BigDecimal)

在用C或者C++处理大数时感觉非常麻烦,但是在JAVA中有两个类BigInteger和BigDecimal分别表示大整数类和大浮点数类,至于两个类的对象能表示最大范围不清楚,理论上能够表示无线大的数,只要计算机内存足够大。 这两个类都在java.math.*包中,因此每次必须在开头处引用该包。   Ⅰ基本函数: 1.valueOf(parament); 将参数转换为制定的类型    比如

wuhulala的休息室 1149

手把手教你RK3568 MIPI屏驱动适配,纯干货!

RK3568 作为一款高性能的多媒体处理器,在嵌入式领域中备受瞩目。它采用了先进的 22nm 制程工艺,搭载四核 Cortex-A55 处理器,这种架构为芯片提供了高效的功耗比,使其在运行各种复杂任务时,既能保证性能,又能有效控制功耗。在实际应用中,无论是多任务处理还是运行大型应用程序,RK3568 都能凭借其四核 Cortex-A55 处理器,实现流畅的操作体验,满足智能设备对高性能和低功耗的需求。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 4071

基于FreeRedis实现的.NET Redis客户端缓存缓存键条件优雅过滤

在.NET开发中,使用Redis作为缓存解决方案是很常见的。FreeRedis是一个功能强大的Redis客户端库,它提供了丰富的功能和灵活性,使我们能够轻松地与Redis进行交互。在本文中,我们将探讨如何使用FreeRedis实现缓存键条件的优雅过滤,以提高缓存的效率和准确性。

RzuScala的博客 329

Java中BigDecimal的使用

在商业计算中一般会要求结果精确 尽量使用参数类型为String的构造函数。 BigDecimal都是不可变的(immutable)的,在进行每一步运算时,会产生一个新的对象,所以在做加减乘除运算时千万要保存操作后的值。   此时,BigDecimal具有重要意义(科学计数)。 BigDecimal 由任意精度的整数非标度值 和32

lendq的Blog 547

【乐企】开票控制服务

例子:企业信息初始化。

九七的博客 456

java中BigDecimal的介绍及使用,BigDecimal格式化,BigDecimal常见问题

BigDecimal概述 二、BigDecimal常用构造方法 三、BigDecimal常用方法 四、BigDecimal进阶 BigDecimal的八种舍入模式 BigDecimal格式化、小数点转换 货币格式化与百分比格式化 五、BigDecimal常见问题 踩坑一:创建 BigDecimal精度丢失的坑 踩坑二:等值比较的坑 踩坑三:无限精度的坑 踩坑四:BigDecimal三种字符串输出的坑 踩坑五:使用BigDecimal进行计算时参数不能为NULL 踩坑六:使用BigDecimal进行除法计算时

weixin_49114503的博客 5万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

java 中 BigDecimal 详解

首先,学习一个东西,我们都必须要带着问题去学,这边我分为 【为什么?】【是什么?】【怎么用?】 【为什么要用BigDecimal?】 首先,我们先看一下,下面这个现象 那为什么会出现这种情况呢? 因为不论是float 还是double都是浮点数,而计算机是二进制的,浮点数会失去一定的精确度。 注:根本原因是:十进制值通常没有完全相同的二进制表示形式;十进制数的二进制表示形式可能不精确...

代码君的博客 20万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Java中BigDecimal的一些操作

目录1 加,减,乘,除,取余加:调用add()函数减:调用subtract()函数乘:调用multiply()函数除:调用multiply()函数取余:调用divideAndRemainder()函数2 比较大小3 类型转换int 转 BigDecimalLont 转 BigDecimalBigDecimal 转 LongBigDecimal 转 int4 处理小数:setScale()函数 Java中的BigDecima不可以直接用+ - * / 这些直接操作,需要用特定的方法来进行处理 BigDecim

GEEK-BANANA 467

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

java计算总金额代码_java使用BigDecimal进行货币金额计算操作代码

本篇文章小编给大家分享一下java使用BigDecimal进行货币金额计算操作代码,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。float和double只能用来做科学计算或者是工程计算,在商业计算中我们要用 java.math.BigDecimal。而且使用BigDecimal类也可以进行大数的操作。一、 BigDecimal的计算金额的计算Big...

weixin_39620197的博客 1867

Java BigDecimal 详解

Java BigDecimal 详解

Go_ahead_forever的博客 1206

Java中运用BigDecimal对字符串的数值进行加减乘除等操作

在实际开发时前端传值给到后端是String类型的数值时,当我们想对这些String类型的数值做加减乘除等例如int类型的操作时,我们将会用到BigDecimal去进行操作。但大家肯定会说这样我们强转类型,成为int类型后操作不是更加方便吗?为什么还要学这个?因为int类型上限,具体是什么上限相信大家写过高精度加减法的算法题会理解int类型的缺陷。所以我们在涉及高精度的加减乘除操作就需要用到了。具体怎么用请看下面的内容~

心态的博客 9322

深入了解:String转BigDecimal,BigDecimal常用操作,以及避免踩坑

在上面的示例代码中,我们定义了一个商品价格和一个税率,使用BigDecimal进行计算,得到了商品的税费和总价。通过这个示例代码,我们可以看到BigDecimal在实际应用中的用途,特别适用于金融领域或其他需要精确计算的场景。本文将介绍如何将String类型的数据转换为BigDecimal,以及BigDecimal常用的操作方法,并分享一些避免在使用BigDecimal时常见的问题和坑。值得注意的是,在进行转换时,需要注意String类型的数据必须符合BigDecimal的格式要求,即只包含数字和小数点。

牛肉胡辣汤 1万+

Java中BigDecimal总结

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

weixin_43564783的博客 1132

java bigdecimal 初始化_Java BigDecimal详解

1.引言借用《Effactive Java》这本书中的话,float和double类型的主要设计目标是为了科学计算和工程计算。他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的。然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合。但是,商业计算往往要求结果精确,这时候BigDecimal就派上大用场啦。2.BigDecimal简介BigDeci...

weixin_26833139的博客 9704

Java BigDecimal是什么,怎么用

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

weixin_48027611的博客 2975

bigdecimal转换为long_Java BigDecimal longValue()用法及代码示例

java.math.BigDecimal.longValue()是一个内置函数,可将BigDecimal转换为长值。此函数丢弃此BigDecimal的任何小数部分。当转换结果太大而不能表示为长值时,该函数仅返回低阶64位。用法:public long longValue()参数:此函数不接受任何参数。返回值:此函数返回此BigDecimal的long值。例子:Input : 19878124561...

weixin_40001048的博客 7494

java bigdecimal取值_Java中BigDecimal类的使用详解

不论是float 还是double都是浮点数,而计算机是二进制的,浮点数会失去一定的精确度。Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法。方法中的参数也必须是BigDecimal的对象。构造器是类的特殊方...

weixin_35755562的博客 1791
上一篇: centOS系统安装zookeeper
下一篇: java8练习
code1Boy
博客等级 码龄10年 45粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值