「java实现加减乘除」JAVA加减乘除

博主:adminadmin 2022-12-08 12:39:06 70

今天给各位分享java实现加减乘除的知识,其中也会对JAVA加减乘除进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java的加减乘除运算

使用BigDecimal并且一定要用String来够造。

实现方法如下:

import java.math.BigDecimal;

/**

* 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精

* 确的浮点数运算,包括加减乘除和四舍五入。

*/

public class Arith{

//默认除法运算精度

private static final int DEF_DIV_SCALE = 10;

//这个类不能实例化

private Arith(){

}

/**

* 提供精确的加法运算。

* @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 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 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();

}

/**

* 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到

* 小数点以后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(scale0){

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();

}

/**

* 提供精确的小数位四舍五入处理。

* @param v 需要四舍五入的数字

* @param scale 小数点后保留几位

* @return 四舍五入后的结果

*/

public static double round(double v,int scale){

if(scale0){

throw new IllegalArgumentException(

"The scale must be a positive integer or zero");

}

BigDecimal b = new BigDecimal(Double.toString(v));

BigDecimal one = new BigDecimal("1");

return b.divide(one,scale,BigDecimal.ROUND_HALF_UP).doubleValue();

}

};

用Java编写实现加减乘除,界面如下

用Java编写的实现加减乘除的程序如下

import java.awt.BorderLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JComboBox;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JTextField;

public class Calculator extends JFrame implements ActionListener{

 JLabel jl1=new JLabel("第一个数");

 JLabel jl2=new JLabel("运算符");

 JLabel jl3=new JLabel("第二个数");

 JLabel jl4=new JLabel("结果:");

 JTextField jtf1=new JTextField(8);

 JTextField jtf2=new JTextField(8);

 JTextField jtf3=new JTextField(8);

 String a[]={"+","-","*","/"};

 JComboBoxString jcb=new JComboBoxString(a);

 JButton jb1=new JButton("计算");

 JButton jb2=new JButton("退出");

 JPanel jp=new JPanel();

 Calculator(){

  setTitle("计算器");

  jb1.addActionListener(this);

  jb2.addActionListener(this);

  jp.setLayout(null);

  jl1.setBounds(30, 30, 80, 20);

  jl2.setBounds(110, 30, 80, 20);

  jl3.setBounds(190, 30, 80, 20);

  jtf1.setBounds(30, 60, 70, 20);

  jcb.setBounds(110, 60, 70,20);

  jtf2.setBounds(190, 60, 70, 20);

  jl4.setBounds(80, 110, 40, 20);

  jtf3.setBounds(110, 110, 100, 20);

  jb1.setBounds(60, 160, 60, 25);

  jb2.setBounds(170, 160, 60, 25);

  jp.add(jl1);jp.add(jl2);jp.add(jl3);

  jp.add(jtf1);jp.add(jcb);jp.add(jtf2);

  jp.add(jl4);jp.add(jtf3);

  jp.add(jb1);jp.add(jb2);

  add(jp,BorderLayout.CENTER);

  setSize(300, 300);

  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  setLocationRelativeTo(null);

  setVisible(true);

 }

 public static void main(String[] args) {

  new Calculator();

 }

 @Override

 public void actionPerformed(ActionEvent ae) {

  if(ae.getSource()==jb1){

   String c=((String) jcb.getSelectedItem()).trim();

   if(jtf1.getText().trim().equals("")){

    JOptionPane.showMessageDialog(this, "第一个数不能为空");

    jtf1.requestFocus();

    return;

   }

   if(jtf2.getText().trim().equals("")){

    JOptionPane.showMessageDialog(this, "第二个数不能为空");

    jtf2.requestFocus();

    return;

   }

   double num1=Double.parseDouble(jtf1.getText().trim());

   double num2=Double.parseDouble(jtf2.getText().trim());

   double num3 = 0;

   switch(c){

    case "+":num3=num1+num2;break;

    case "-":num3=num1-num2;break;

    case "*":num3=num1*num2;break;

    case "/":

     if(num2==0){

      JOptionPane.showMessageDialog(this, "除数不能为0");

      jtf2.requestFocus();

      return;

     }else{

      num3=num1/num2;

      break;

     }

   }

   jtf3.setText(String.valueOf(num3));

  }

  if(ae.getSource()==jb2){

   System.exit(0);

  }

 }

}

运行结果

java加减乘除是什么类

java中实现加减乘除的类是java.math.BigDecimal类. BigDecimal 类提供以下操作:算术、标度操作、舍入、比较、哈希算法和格式转换。

加法运算:调用BigDecimal类的add方法即可

BigDecimal b1 = new BigDecimal("1");

BigDecimal b2 = new BigDecimal("2");

BigDecimal result = b1.add(b2);//加法

System.out.println(result);

减法运算:调用BigDecimal类的subtract方法即可

BigDecimal b1 = new BigDecimal(3.2);

BigDecimal b2 = new BigDecimal(1.6);

BigDecimal result = b1.subtract(b2);//减法

System.out.println(result);

乘法运算:调用BigDecimal类的multiply方法即可

BigDecimal b1 = new BigDecimal(9);

BigDecimal b2 = new BigDecimal(8.2);

BigDecimal result = b1.multiply(b2);//乘法

System.out.println(result);

除法运算:调用BigDecimal类的divide方法即可。

注意: 除法运算存在除不尽的情况,比如1.0/3=0.333333.. 我们需要指定小数点后面的长度,以及有效的舍入模式(例如四舍五入模式).

BigDecimal b1 = new BigDecimal("1");

BigDecimal b2 = new BigDecimal("3");

int scale = 5;//scale 指定小数点后面的位数为5位

double result = b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();// 除法

// BigDecimal.ROUND_HALF_UP 表示四舍五入

System.out.println(result);

备注:

1:BigDecimal的构造参数有很多,但浮点类型建议转换成字符串类型, 避免精度的丢失.

double d1 =0.001;//浮点类型

String s1 = Double.toString(d1);//转成字符串

BigDecimal b1 = new BigDecimal(s1);//使用字符串作为构造参数

2:BigDecimal类, 内存占用比基本类型多,并且为了计算的精度,速度比double慢一点.所以,只有在需要精确计算的情况下,才使用BigDecimal类进行. 普通运算,还是多使用+-*/运算符,位运算符等.

关于java实现加减乘除和JAVA加减乘除的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-08,除非注明,否则均为首码项目网原创文章,转载请注明出处。