//JAVA編程:四則運(yùn)算(接收用戶輸入的2個(gè)操作數(shù),和運(yùn)算符),計(jì)算之后,輸出結(jié)果~~~~
成都創(chuàng)新互聯(lián)長(zhǎng)期為超過(guò)千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為思南企業(yè)提供專業(yè)的網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè),思南網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
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)算無(wú)意義!");
break;
}
else {
System.out.println(a+"/"+ b+ " = "+(a/b));
break;
}
default:
System.out.println("運(yùn)算符是無(wú)意義字符!");
break;
}
}
}
望采納~~~~~~~~
使用BigDecimal并且一定要用String來(lái)夠造。
實(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();
}
};
將字符串轉(zhuǎn)換成數(shù)字:
有兩種方法:
第一種:
比如說(shuō);a="123",b=2,那么int num = Integer.parseInt(a);
然后與另外數(shù)字加減;
第二種:
運(yùn)用BigDecimal num = new BigDecimal(a);
BigDecimal num2 = new BigDecimal(b);
BigDecimal result = num.add(num2);
或者減法:BigDecimal result = num.subtract(num2);
通過(guò)調(diào)用BigDecimal的各種方法即可以實(shí)現(xiàn)加減乘除。
兩種方法比較:
第一種只可以實(shí)現(xiàn)整數(shù)轉(zhuǎn)換;
第二種可以實(shí)現(xiàn)任何類型的轉(zhuǎn)換,而且計(jì)算精度高。
import java.util.Scanner;
public class HybridOperation {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("輸入一個(gè)表達(dá)式:");
String s = input.nextLine().trim();
int n = s.length();
int sum = 0;
int p = -1;
char a = '+';
for (int i = 1; i n; i++) {
char ch = s.charAt(i);
if (ch == '+' || ch == '-') {
if (a == '+') {
sum += Integer.parseInt(s.substring(p + 1, i));
a = ch;
p = i;
} else if (a == '-') {
sum -= Integer.parseInt(s.substring(p + 1, i));
a = ch;
p = i;
}
}
}
if (a == '+') {
sum += Integer.parseInt(s.substring(p + 1));
}
if (a == '-') {
sum -= Integer.parseInt(s.substring(p + 1));
}
System.out.println(s+" = "+sum);
}
}
可以實(shí)現(xiàn)任意次數(shù)的加減,
如:1+2+3-2
因?yàn)?字符串判斷內(nèi)容上是否相同,要使用的是equals函數(shù)
修改后的代碼
String?s?=?jtf2.getText();//字符串s已經(jīng)取得了文本框2的內(nèi)容.后面就直接使用把
double?result?=?0;
if?(s.equals("*"))?{//字符串判斷內(nèi)容是否一致,要使用equals函數(shù)?,
result?=?num1?*?num2;
}
if?(s.equals("/"))?{
result?=?num1?/?num2;
}
if?(s.equals("+"))?{
result?=?num1?+?num2;
}
if?(s.equals("-"))?{
result?=?num1?-?num2;
}
運(yùn)行
setText(""+number1-number2);
因?yàn)閖ava是從左到右處理的,在減法運(yùn)算前有""字符串處理, java就會(huì)把之后的都當(dāng)做字符串處理.改成
setText(""+(number1-number2));
如果減法運(yùn)算在前面,比如 number1-number2 + "".這樣是可以的
網(wǎng)站欄目:java代碼怎么做加減 java加減乘除法程序編寫
網(wǎng)站鏈接:http://aaarwkj.com/article12/doodpgc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、小程序開發(fā)、商城網(wǎng)站、響應(yīng)式網(wǎng)站、網(wǎng)站設(shè)計(jì)公司、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)