精华内容
下载资源
问答
  • BigDecimal加减乘除计算

    万次阅读 多人点赞 2018-09-16 12:06:50
    前阵子做题遇到了大数的精确计算,再次认识了...BigDecimal的运算——加减乘除 首先是bigdecimal的初始化 这里对比了两种形式,第一种直接value写数字的值,第二种用string来表示 BigDecimal num1 = new ...

    前阵子做题遇到了大数的精确计算,再次认识了bigdecimal 关于Bigdecimal意外的有许多小知识点和坑,这里特此整理一下为方便以后学习,希望能帮助到其他的萌新

    前阵子做题遇到了大数的精确计算,再次认识了bigdecimal
    关于Bigdecimal意外的有许多小知识点和坑,这里特此整理一下为方便以后学习,希望能帮助到其他的萌新


    BigDecimal的运算——加减乘除

    首先是bigdecimal的初始化

    这里对比了两种形式,第一种直接value写数字的值,第二种用string来表示

            BigDecimal num1 = new BigDecimal(0.005);
            BigDecimal num2 = new BigDecimal(1000000);
            BigDecimal num3 = new BigDecimal(-1000000);
            //尽量用字符串的形式初始化
            BigDecimal num12 = new BigDecimal("0.005");
            BigDecimal num22 = new BigDecimal("1000000");
            BigDecimal num32 = new BigDecimal("-1000000");

    我们对其进行加减乘除绝对值的运算

    其实就是Bigdecimal的类的一些调用

    加法 add()函数     减法subtract()函数

    乘法multiply()函数    除法divide()函数    绝对值abs()函数

    我这里承接上面初始化Bigdecimal分别用string和数进行运算对比

            //加法
            BigDecimal result1 = num1.add(num2);
            BigDecimal result12 = num12.add(num22);
    
            //减法
            BigDecimal result2 = num1.subtract(num2);
            BigDecimal result22 = num12.subtract(num22);
    
            //乘法
            BigDecimal result3 = num1.multiply(num2);
            BigDecimal result32 = num12.multiply(num22);
    
            //绝对值
            BigDecimal result4 = num3.abs();
            BigDecimal result42 = num32.abs();
    
            //除法
            BigDecimal result5 = num2.divide(num1,20,BigDecimal.ROUND_HALF_UP);
            BigDecimal result52 = num22.divide(num12,20,BigDecimal.ROUND_HALF_UP);

    我把result全部输出可以看到结果

    这里出现了差异,这也是为什么初始化建议使用string的原因

    ※ 注意:

    1)System.out.println()中的数字默认是double类型的,double类型小数计算不精准。

    2)使用BigDecimal类构造方法传入double类型时,计算的结果也是不精确的!

    因为不是所有的浮点数都能够被精确的表示成一个double 类型值,有些浮点数值不能够被精确的表示成 double 类型值,因此它会被表示成与它最接近的 double 类型的值。必须改用传入String的构造方法。这一点在BigDecimal类的构造方法注释中有说明。

    完整的test代码如下:

    import java.math.BigDecimal;
    import java.util.Scanner;
    
    public class TestThree {
    
        public static void main(String[] args) {
    
            BigDecimal num1 = new BigDecimal(0.005);
            BigDecimal num2 = new BigDecimal(1000000);
            BigDecimal num3 = new BigDecimal(-1000000);
            //尽量用字符串的形式初始化
            BigDecimal num12 = new BigDecimal("0.005");
            BigDecimal num22 = new BigDecimal("1000000");
            BigDecimal num32 = new BigDecimal("-1000000");
    
            //加法
            BigDecimal result1 = num1.add(num2);
            BigDecimal result12 = num12.add(num22);
            //减法
            BigDecimal result2 = num1.subtract(num2);
            BigDecimal result22 = num12.subtract(num22);
            //乘法
            BigDecimal result3 = num1.multiply(num2);
            BigDecimal result32 = num12.multiply(num22);
            //绝对值
            BigDecimal result4 = num3.abs();
            BigDecimal result42 = num32.abs();
            //除法
            BigDecimal result5 = num2.divide(num1,20,BigDecimal.ROUND_HALF_UP);
            BigDecimal result52 = num22.divide(num12,20,BigDecimal.ROUND_HALF_UP);
    
            System.out.println("加法用value结果:"+result1);
            System.out.println("加法用string结果:"+result12);
    
            System.out.println("减法value结果:"+result2);
            System.out.println("减法用string结果:"+result22);
    
            System.out.println("乘法用value结果:"+result3);
            System.out.println("乘法用string结果:"+result32);
    
            System.out.println("绝对值用value结果:"+result4);
            System.out.println("绝对值用string结果:"+result42);
    
            System.out.println("除法用value结果:"+result5);
            System.out.println("除法用string结果:"+result52);
        }
    }

    除法divide()参数使用

    使用除法函数在divide的时候要设置各种参数,要精确的小数位数和舍入模式,不然会出现报错

    我们可以看到divide函数配置的参数如下

    即为 (BigDecimal divisor 除数, int scale 精确小数位,  int roundingMode 舍入模式)
    

    可以看到舍入模式有很多种BigDecimal.ROUND_XXXX_XXX, 具体都是什么意思呢

    计算1÷3的结果(最后一种ROUND_UNNECESSARY在结果为无限小数的情况下会报错)

    八种舍入模式解释如下

    1、ROUND_UP

    舍入远离零的舍入模式。

    在丢弃非零部分之前始终增加数字(始终对非零舍弃部分前面的数字加1)。

    注意,此舍入模式始终不会减少计算值的大小。

    2、ROUND_DOWN

    接近零的舍入模式。

    在丢弃某部分之前始终不增加数字(从不对舍弃部分前面的数字加1,即截短)。

    注意,此舍入模式始终不会增加计算值的大小。

    3、ROUND_CEILING

    接近正无穷大的舍入模式。

    如果 BigDecimal 为正,则舍入行为与 ROUND_UP 相同;

    如果为负,则舍入行为与 ROUND_DOWN 相同。

    注意,此舍入模式始终不会减少计算值。

    4、ROUND_FLOOR

    接近负无穷大的舍入模式。

    如果 BigDecimal 为正,则舍入行为与 ROUND_DOWN 相同;

    如果为负,则舍入行为与 ROUND_UP 相同。

    注意,此舍入模式始终不会增加计算值。

    5、ROUND_HALF_UP

    向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则为向上舍入的舍入模式。

    如果舍弃部分 >= 0.5,则舍入行为与 ROUND_UP 相同;否则舍入行为与 ROUND_DOWN 相同。

    注意,这是我们大多数人在小学时就学过的舍入模式(四舍五入)。

    6、ROUND_HALF_DOWN

    向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则为上舍入的舍入模式。

    如果舍弃部分 > 0.5,则舍入行为与 ROUND_UP 相同;否则舍入行为与 ROUND_DOWN 相同(五舍六入)。

    7、ROUND_HALF_EVEN

    向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则向相邻的偶数舍入。

    如果舍弃部分左边的数字为奇数,则舍入行为与 ROUND_HALF_UP 相同;

    如果为偶数,则舍入行为与 ROUND_HALF_DOWN 相同。

    注意,在重复进行一系列计算时,此舍入模式可以将累加错误减到最小。

    此舍入模式也称为“银行家舍入法”,主要在美国使用。四舍六入,五分两种情况。

    如果前一位为奇数,则入位,否则舍去。

    以下例子为保留小数点1位,那么这种舍入方式下的结果。

    1.15>1.2 1.25>1.2

    8、ROUND_UNNECESSARY

    断言请求的操作具有精确的结果,因此不需要舍入。

    如果对获得精确结果的操作指定此舍入模式,则抛出ArithmeticException。

    http://www.bdqn.cn/news/201311/11834.shtml

     

    展开全文
  • 注会机考加减乘除如何输入,注会机考加减乘除如何输入注会机考加减乘除可以在答题页面的“公式”选项中查找,也可以直接用键盘上输入,都是认可的。word加减乘除怎么输入:jingyan.baidu./article/d169e18...

    注会机考加减乘除如何输入,注会机考加减乘除如何输入以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

    d6f3efe31956c7c0020a329d4ec509c2.png

    注会机考加减乘除如何输入,注会机考加减乘除如何输入

    注会机考加减乘除可以在答题页面的“公式”选项中查找,也可以直接用键盘上输入,都是认可的。

    word加减乘除怎么输入

    :jingyan.baidu./article/d169e186a37727436611d883.

    如何在wps快速输入加减乘除的符号

    在Excel中的运算符号: 加——+ 减——- 乘——* 除——/ 如果单元格A1、B1中分别有数字2、4,则在C1单元格中编辑运算公式为: 加法——=A1+B1 减法——=A1-B1 乘法——=A1*B1 除法——=A1/B1 注意: 每一个公式中,第一个符号是等号“=”,这是Excel中公式的基本。

    计算机如何输入加减乘除符号的方法

    加号:+ 输入方法:键盘 第二排 第十三个键 和 shift 键一起按。

    减号:- 输入方法:键盘 第二排 第十二个键

    乘号:* 输入方法:键盘 第二排 第9个键 和 shift 键一起按。

    除号:/ 输入方法:先按 capslock 键,再按键盘 第五排 第十一个键

    C++输入两个数,求其加减乘除

    #include

    using namespace std;

    int main()

    {

    double x,y,a,b,c,d;cin>>x>>y;逻辑上的问题,要先输入变量

    a=x+y;

    b=x-y;

    c=x*y;

    d=x/y;

    cout<

    cout<

    cout<

    cout<

    return 0;

    }

    AuToCAD绘图时加减乘除符号怎么输入

    两种方法可以,1、右键单击在弹出的对话框中选字符输入,选择对应的符号即可;

    2、在输入法软件盘内点数学符号输入也可以。利用键盘上输令输入不漂亮,不建议使用。

    c语言中如何随机输出加减乘除

    #include

    #include

    #include

    void main( void )

    {

    int i,t;

    char a;

    srand( (unsigned)time( NULL ) );

    t=rand()%4;

    if (t==0) a='+';

    if (t==1) a='-';

    if (t==2) a='x';

    if (t==3) a='/';

    printf( " %6c\n", a);

    }

    已经在VC++6.0上通过了。你看行不?

    python 如何对intvar做加减乘除?

    python做加减乘除功能上比较容易实现。

    就是做计算器的界面,这个选择比较多。

    tk,wxpython,Qt都可以

    tk内置,不需要另外安装库,简洁。就是看起来,比较windows。

    wxpython库比较成熟了,各种样式很多。

    qt,有界面编辑很方便。我没用过。

    我觉得wxpython比较好,demo中的样式就很多了。

    具体实现的话:用wxpython做一个计算器的界面,有一个输入框。然后将输入的数字和加减乘除,str=“32*32-543/543+25” 直接eval(str)成表达式,就知道结果了。

    1199加减乘除如何得10

    (1+1/9)*9

    2972如何加减乘除得24

    (7+9)×2-8=24

    很高兴为您解答!

    有不明白的可以追问!如果您认可我的回答。

    请点击下面的【选为满意回答】按钮,谢谢!

    分页:123

    展开全文
  • 摘要加减乘除的英文:add, subtract, multiply and divide。例句:你知道加减乘除的符号吗?Do you know the signs for add, subtract, multiply, and divide?例句在办公室里有能做乘法除法的计算尺,以及能加减乘除...

    摘要

    加减乘除的英文:add, subtract, multiply and divide。例句:你知道加减乘除的符号吗?Do you know the signs for add, subtract, multiply, and divide?

    3cee82feed3a43625952cc15f4a1aa28.png

    例句

    在办公室里有能做乘法除法的计算尺,以及能加减乘除的台式计算机。

    In offices there are slide rules for multiplication and division, and desk machines which can add, subtract, multiply and divide.

    例句

    年长者表现不太好的方面则是:(数字能力加减乘除运算的速度)以及感知速度听到指令按下按钮的速度。

    Where they fared less well was number ability ( how quickly you can multiply, add, subtract and divide) and perceptual speed-how fast you can push a button when prompted.

    展开全文
  • 易语言少儿趣味加减乘除源码,少儿趣味加减乘除
  • 易语言加减乘除简单计算器源码,加减乘除简单计算器,输入,运算
  • 在Java中关于有小数的加减乘除都是经常遇到的,现在主要说明关于运算后的精度问题,如果你对精度要求不高,查出来的数据本身就只能作为参考,那么自己使用什么类型DoubleBigDecimal 等都没有多大的区别。但是如果...

        在Java中关于有小数的加减乘除都是经常遇到的,现在主要说明关于运算后的精度问题,如果你对精度要求不高,查出来的数据本身就只能作为参考,那么自己使用什么类型  Double BigDecimal 等都没有多大的区别。但是如果对于精确到要求比较高的地方那么必须使用 BigDecimal,只有他才能保证你的精度。

        现在来介绍如何使用 BigDecimal ,

    // 首先是如何来 创建一个  BigDecimal,有以下方法来创建 ,但是这2个创建的结果是不一样的。
    		BigDecimal sum1=new BigDecimal("0.35");
    		BigDecimal sum2=new BigDecimal(0.35);
    		System.out.println(sum1);
    		System.out.println(sum2);
    		/*  结果分别为:
    		  0.35
    		  0.34999999999999997779553950749686919152736663818359375
    		   只要有创建带小数的  都要使用  BigDecimal(String val) 这个构造方法,使用其他的会使其精度出现偏差
    		  我个人习惯都是 使用  String
    		*/
    		// 再来看  Double
    		Double d1 =new Double("0.35");
    		Double d2 =new Double(0.35);
    		System.out.println(d1);
    		System.out.println(d2);
    		// 结果 无差异  都是  1.016
    		
    		// 对于运算符 
    		Double d =new Double("11540");
    		System.out.println(d*d1);
    		// 结果为: 4038.9999999999995
    		
    		BigDecimal sum=new BigDecimal("11540");
    		System.out.println(sum.multiply(sum1));
    		// 结果为 :4039.00
    		
    		// 在运算时 Double 在某些时候会导致精度不准确(并不是每次都不准确),
    		// 所以你不清楚 在什么时候不准确,所以 对精度要求高的计算 都要使用  BigDecimal
    		// 下面说下 BigDecimal 的一些常用的方法
    		System.out.println("=====================");
    		// 加法   11540    0.35
    		BigDecimal multiply = sum.add(sum1);
    		System.out.println(multiply);
    		// 减法 
    		BigDecimal subtract = sum.subtract(sum1);
    		System.out.println(subtract);
    		// 乘法 
    		BigDecimal multiply2 = sum.multiply(sum1);
    		System.out.println(multiply2);
    		
    		// 现在重点介绍一下 除法 为什么呢,因为你在使用的时候 可能出现 除不尽 的数
    		// 这样的话就会直接  抛出异常   ArithmeticException
    		
    		//BigDecimal divide = sum.divide(sum1);
    		//System.out.println(divide); 这样直接就会报错,只能 其他方法
    		
    		
    		BigDecimal divide = sum.divide(sum1,4,BigDecimal.ROUND_HALF_UP);
    		System.out.println(divide);
    		
    		// 32971.4285714286
    		/*  首先来解释下  这些参数 
    		 * 第一个就不用说了;第二个是你要  保留几位小数; 
    		 * 第三个就比较多了: 主要意思就是 关于这个 主要的 保留几位数的方式
    		 *  主要说明常用的
            BigDecimal.ROUND_DOWN    去一法。 直接删除后面的位数。正数负数都一样
            BigDecimal.ROUND_UP      进一法。 不管正负数,只要后面舍去的位数大于0,数字末尾加1
            BigDecimal.ROUND_HALF_UP 四舍五入 不管正负数,后面的数字一律四舍五入
            BigDecimal.ROUND_HALF_DOWN 可以说和ROUND_HALF_UP 有相似的地方,但是后面舍得数字的下一位必须大于 5 才进一。ROUND_HALF_UP 等于 5也会进一
    
    		
    		 * 
    		 * 其他的就不说,不清楚的可以看源码,记住几个经常使用的就行
    		 * 
    		 */ 

    最后加加上 大小比较的方法,compareTo  -1 小于,0 等于,1 大于

    展开全文
  • 下面小编就为大家带来一篇html+js实现简单的计算器代码(加减乘除)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。html+js实现简单的计算器代码(加减乘除) function setOp(op, opTips){var tb=document....
  • 很多人都知道,java对于double或者float类型的数字进行直接的加减乘除运行,会出现小数点后面加有很多位数据,导致和我们实际运算结果不符,所以我来给大家提供一个好用的加减乘除工具 话不多说,直接上代码 import ...
  • c# 计算器 加减乘除

    2014-05-20 13:48:36
    c# 计算器 加减乘除 计算器 加减乘除 计算器 加减乘除
  • 主要为大家详细介绍了C#实现简单加减乘除计算器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 原生js简单的加减乘除计算器样式代码 原生js简单的加减乘除计算器样式代码
  • 实现数字之间的加减乘除,运行项目后给予用户一定的操作提示(带上个人信息, 如:欢迎使用XX开发的计算器),加减乘除分别以不同的函数进行定义封装,在主函数当中进行加减乘除方法的调用进行运算,最终将得到的结果...
  • 1计算器(加减乘除) 实现简单的减加乘除 包含小数
  • js浮点数加减乘除

    千次阅读 2018-08-02 10:52:08
    js浮点数加减乘除 js浮点数的加减乘除存在着严重的bug,例如:在google浏览器下,0.1+0.2=0.30000000000000004;这完全不是我们想要的结果。 对于这一问题的解决方案就是重写浮点数的加减乘除方法,其原理是现将...
  • JS精准加减乘除算法

    2018-09-14 17:01:02
    JS精准加减乘除算法,解决JS原生加减乘除运算精度不足问题。
  • 字符串转加减乘除表达式字符串转加减乘除表达式字符串转加减乘除表达式字符串转加减乘除表达式字符串转加减乘除表达式字符串转加减乘除表达式字符串转加减乘除表达式字符串转加减乘除表达式字符串转加减乘除表达式...
  • BigDecimal加减乘除

    2020-06-08 16:05:39
    这里写自定义目录标题**BigDecimal加减乘除** BigDecimal加减乘除 最常用的 加减乘除 列出来 有兴趣的小伙伴可以参考官网 链接: 官网. 所对应的 add 加 subtract 减 Multiply 乘 Divide 除
  • 主要介绍了C#利用栈实现加减乘除运算的实现方法,需要的朋友可以参考下
  • C++ 大整数加减乘除 代码 C++ 大整数加减乘除 代码 C++ 大整数加减乘除 代码C++ 大整数加减乘除 代码 C++ 大整数加减乘除 代码 C++ 大整数加减乘除 代码C++ 大整数加减乘除 代码C++ 大整数加减乘除 代码 C++ 大整数...
  • 策略加减乘除运算

    2015-04-27 15:19:00
    策略加减测试demo 只有加减乘除 拿来分享一下
  • 可以进行1024位的数字加减乘除。我已经对加减乘除进行了重载。 只需把主函中C=A+B修改一下就好。
  • 100以内加减乘除

    2015-04-22 16:56:24
    100以内加减乘除,需要的下载咯,代码很简单,一看就会
  • 加减乘除计算器想必大家都有使用过吧,本文为大家介绍下使用php如何实现,下面有个不错的示例,感兴趣的朋友可以参考下
  • java加减乘除

    2011-09-21 10:50:46
    用 Java语言 进行 加减乘除 操作运算 结果是最简化
  • BigDecimal加减乘除工具包,提供了BigDecial操作以及保留小数位数
  • 浮点数加减乘除运算

    2013-04-27 15:22:40
    浮点数加减乘除运算,里面结合了从网上搜索到的accAdd版本以及新增版本的浮点加减乘除运算,明显能直出新补充方法能满足实际需求,解决js对于浮点运算的bug.
  • 扁平风格加减乘除网页计算器js代码是一款简洁的兼容手机移动端的加减乘除运算计算器网页特效。
  • js 加减乘除

    2014-01-08 15:16:37
    js 加减乘除 比较准确
  • 可运行,VB制作加减乘除小计算器VB制作加减乘除小计算器

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 84,782
精华内容 33,912
关键字:

加减乘除