真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java的加減乘除代碼 java的加減乘除代碼是什么

java加減乘除運(yùn)算的程序怎么編啊

//JAVA編程:四則運(yùn)算(接收用戶輸入的2個(gè)操作數(shù),和運(yùn)算符),計(jì)算之后,輸出結(jié)果~~~~

創(chuàng)新互聯(lián)基于成都重慶香港及美國等地區(qū)分布式IDC機(jī)房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動(dòng)大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)德陽電信服務(wù)器托管報(bào)價(jià),主機(jī)托管價(jià)格性價(jià)比高,為金融證券行業(yè)服務(wù)器托管,ai人工智能服務(wù)器托管提供bgp線路100M獨(dú)享,G口帶寬及機(jī)柜租用的專業(yè)成都idc公司。

import java.util.Scanner;

public class 四則運(yùn)算 {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.print("請(qǐng)輸入第一個(gè)數(shù)字:");

int a = sc.nextInt();

System.out.print("請(qǐng)輸入運(yùn)算符號(hào):");

String str = sc.next();

char ch = str.charAt(0);

System.out.print("請(qǐng)輸入第二個(gè)數(shù)字:");

int b = sc.nextInt();

switch(ch)

{

case '+':

System.out.println(a+"+"+ b + "="+(a+b));

break;

case '-':

System.out.println(a+"-"+ b+ "="+(a-b));

break;

case '*':

System.out.println(a+"*"+ b+ "="+(a*b));

break;

case '/':

if(b==0){

System.out.println("被除數(shù)為零,運(yùn)算無意義!");

break;

}

else {

System.out.println(a+"/"+ b+ " = "+(a/b));

break;

}

default:

System.out.println("運(yùn)算符是無意義字符!");

break;

}

}

}

望采納~~~~~~~~

java的加減乘除運(yùn)算

使用BigDecimal并且一定要用String來夠造。

實(shí)現(xiàn)方法如下:

import java.math.BigDecimal;

/**

* 由于Java的簡(jiǎn)單類型不能夠精確的對(duì)浮點(diǎn)數(shù)進(jìn)行運(yùn)算,這個(gè)工具類提供精

* 確的浮點(diǎn)數(shù)運(yùn)算,包括加減乘除和四舍五入。

*/

public class Arith{

//默認(rèn)除法運(yùn)算精度

private static final int DEF_DIV_SCALE = 10;

//這個(gè)類不能實(shí)例化

private Arith(){

}

/**

* 提供精確的加法運(yùn)算。

* @param v1 被加數(shù)

* @param v2 加數(shù)

* @return 兩個(gè)參數(shù)的和

*/

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

}

/**

* 提供精確的減法運(yùn)算。

* @param v1 被減數(shù)

* @param v2 減數(shù)

* @return 兩個(gè)參數(shù)的差

*/

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

}

/**

* 提供精確的乘法運(yùn)算。

* @param v1 被乘數(shù)

* @param v2 乘數(shù)

* @return 兩個(gè)參數(shù)的積

*/

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

}

/**

* 提供(相對(duì))精確的除法運(yùn)算,當(dāng)發(fā)生除不盡的情況時(shí),精確到

* 小數(shù)點(diǎn)以后10位,以后的數(shù)字四舍五入。

* @param v1 被除數(shù)

* @param v2 除數(shù)

* @return 兩個(gè)參數(shù)的商

*/

public static double div(double v1,double v2){

return div(v1,v2,DEF_DIV_SCALE);

}

/**

* 提供(相對(duì))精確的除法運(yùn)算。當(dāng)發(fā)生除不盡的情況時(shí),由scale參數(shù)指

* 定精度,以后的數(shù)字四舍五入。

* @param v1 被除數(shù)

* @param v2 除數(shù)

* @param scale 表示表示需要精確到小數(shù)點(diǎn)以后幾位。

* @return 兩個(gè)參數(shù)的商

*/

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

}

/**

* 提供精確的小數(shù)位四舍五入處理。

* @param v 需要四舍五入的數(shù)字

* @param scale 小數(shù)點(diǎn)后保留幾位

* @return 四舍五入后的結(jié)果

*/

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

}

};

加減乘除運(yùn)算(Java)

實(shí)際上這相當(dāng)于javascript的eval方法,以下是該方法的java實(shí)現(xiàn):

//Eval.java

import java.util.ArrayList;

import java.util.List;

import java.util.Stack;

public class Eval {

public int eval(String exp){

ListString list = infixExpToPostExp(exp);//轉(zhuǎn)化成后綴表達(dá)式

return doEval(list);//真正求值

}

//遇到操作符壓棧,遇到表達(dá)式從后綴表達(dá)式中彈出兩個(gè)數(shù),計(jì)算出結(jié)果,壓入堆棧

private int doEval(ListString list) {

StackString stack = new StackString();

String element;

int n1,n2,result;

try{

for(int i = 0; i list.size();i++){

element = list.get(i);

if(isOperator(element)){

n1 = Integer.parseInt(stack.pop());

n2 = Integer.parseInt(stack.pop());

result = doOperate(n1,n2,element);

stack.push(new Integer(result).toString());

}else{

stack.push(element);

}

}

return Integer.parseInt(stack.pop());

}catch(RuntimeException e){

throw new IllegalExpressionException(e.getMessage());

}

}

private int doOperate(int n1, int n2, String operator) {

if(operator.equals("+"))

return n1 + n2;

else if(operator.equals("-"))

return n1 - n2;

else if(operator.equals("*"))

return n1 * n2;

else

return n1 / n2;

}

private boolean isOperator(String str){

return str.equals("+") || str.equals("-") || str.equals("*") || str.equals("/");

}

private ListString infixExpToPostExp(String exp){//將中綴表達(dá)式轉(zhuǎn)化成為后綴表達(dá)式

ListString postExp = new ArrayListString();//存放轉(zhuǎn)化的后綴表達(dá)式的鏈表

StringBuffer numBuffer = new StringBuffer();//用來保存一個(gè)數(shù)的

StackCharacter opStack = new StackCharacter();//操作符棧

char ch,preChar;

opStack.push('#');

try{

for(int i = 0; i exp.length();){

ch = exp.charAt(i);

switch(ch){

case '+':

case '-':

case '*':

case '/':

preChar = opStack.peek();

// 如果棧里面的操作符優(yōu)先級(jí)比當(dāng)前的大,則把棧中優(yōu)先級(jí)大的都添加到后綴表達(dá)式列表中

while(priority(preChar) = priority(ch)){

postExp.add(""+preChar);

opStack.pop();

preChar = opStack.peek();

}

opStack.push(ch);

i++;

break;

case '(':

// 左括號(hào)直接壓棧

opStack.push(ch);

i++;

break;

case ')':

// 右括號(hào)則直接把棧中左括號(hào)前面的彈出,并加入后綴表達(dá)式鏈表中

char c = opStack.pop();

while(c != '('){

postExp.add("" + c);

c = opStack.pop();

}

i++;

break;

// #號(hào),代表表達(dá)式結(jié)束,可以直接把操作符棧中剩余的操作符全部彈出,并加入后綴表達(dá)式鏈表中

case '#':

char c1;

while(!opStack.isEmpty()){

c1 = opStack.pop();

if(c1 != '#')

postExp.add("" + c1);

}

i++;

break;

//過濾空白符

case ' ':

case '\t':

i++;

break;

// 數(shù)字則湊成一個(gè)整數(shù),加入后綴表達(dá)式鏈表中

default:

if(Character.isDigit(ch)){

while(Character.isDigit(ch)){

numBuffer.append(ch);

ch = exp.charAt(++i);

}

postExp.add(numBuffer.toString());

numBuffer = new StringBuffer();

}else{

throw new IllegalExpressionException("illegal operator");

}

}

}

}catch(RuntimeException e){

throw new IllegalExpressionException(e.getMessage());

}

return postExp;

}

private int priority(char op){//定義優(yōu)先級(jí)

switch(op){

case'+':

case'-':

return 1;

case'*':

case'/':

return 2;

case'(':

case'#':

return 0;

}

throw new IllegalExpressionException("Illegal operator");

}

}

Main.java 主函數(shù)所在類

public class Main

{

public static void main(String[] args) {

try {

InputStreamReader isr=new InputStreamReader(System.in);

BufferedReader br=new BufferedReader(isr);

String exp=br.readLine();

int result = eval.eval(exp);

System.out.println(result);

}

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

IllegalExpressionException異常類

public class IllegalExpressionException extends RuntimeException{

public IllegalExpressionException(){

}

public IllegalExpressionException(String info){

super(info);

}

}


網(wǎng)站欄目:java的加減乘除代碼 java的加減乘除代碼是什么
分享鏈接:http://weahome.cn/article/ddgegho.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部