1. 程式人生 > >關於Java精度不丟失的加減乘除運算

關於Java精度不丟失的加減乘除運算

package com.design.utils;

import java.math.BigDecimal;
import java.util.Scanner;

import org.junit.Test;

public class TestModel {
	
	/**
	 * 
	 * @param numA 數字A
	 * @param numB 數字B
	 * @param operate 運算子
	 * @return
	 */
	public double GetResult(double numA, double numB, String operate){
		double res = 0;
		BigDecimal bigA = new BigDecimal(Double.toString(numA));
		BigDecimal bigB = new BigDecimal(Double.toString(numB));
		switch (operate) {
			
			case "+":
				res = bigA.add(bigB).doubleValue();
				break;
			case "-":
				res = bigA.subtract(bigB).doubleValue();
				break;
			case "*":
				res = bigA.multiply(bigB).doubleValue();
				break;
			case "/":
				res = bigA.divide(bigB).doubleValue();
				break;
			default :
				System.out.println("運算子不合法~");
				break;
		}
		return res;
	}

	@Test
	public void testAccuracy(){
		try {
			Scanner sc = new Scanner(System.in);
			System.out.println("請輸入數字A:");
			double numA = sc.nextDouble();
			
			System.out.println("請選擇運算子(+、-、*、/):");
			String operate = sc.next();
			
			System.out.println("請輸入數字B:");
			double numB = sc.nextDouble();
			double getResult = GetResult(numA, numB, operate);
			
			System.out.println("結果是:" + getResult);
			
			sc.close();
		} catch (Exception e) {
			System.out.println("您的輸入有誤~" + e.getMessage());
		}
	}

}


相關推薦

java BigDecimal實現精確乘除運算

java.math.BigDecimal。BigDecimal一共有4個夠造方法,讓我先來看看其中的兩種用法: 第一種:BigDecimal(double val) Translates a double into a BigDecimal. 第二種:BigDecim

JAVA 實現精確的乘除運算

從上面程式碼的執行結果看出:JAVA在加減乘除運算時易發生精度丟失,達不到我們想要的計算結果;為了能夠精確表示、計算浮點數,JAVA提供了BigDecimal類,可以以BigDecimal為基礎定義一個Arith工具類,程式碼如下: import java.math.B

關於Java精度丟失乘除運算

package com.design.utils; import java.math.BigDecimal; import java.util.Scanner; import org.junit.Test; public class TestModel { /

解決js乘除運算小數丟失精度的問題

// 解決浮動運算問題,避免小數點後產生多位數和計算精度損失。 class Precision { // 乘法 times (num1, num2, ...others) { if (others.length > 0) { return this.times(t

js乘除運算(避免精度丟失

//加法函式 function accAdd(arg1, arg2) { var r1, r2, m; try { r1 = arg1.toString().split(

D-位運算-劍指Offer(Java版)47-不用乘除做加法

題目 寫一個函式,求兩個整數之和,要求在函式體內不得使用+、-、*、/四則運算子號。 位操作 與(&) 或(|) 非(~) 異或(^) 左移(<<) :num << 1,相當於num乘以2 右移(>>) :num

js中float型別乘除運算精度問題

js裡邊取float數的精度的方法 toFixed() toFixed() 方法可把 Number 四捨五入為指定小數位數的數字。 toFixed() 裡面的數為 0- 20 之間的整數。 var a = 1.23456 a.toFixed(2) = 1.23 toFixed

Java中最好使用BigDecimal類處理乘除運算

Java中,對於不需要任何準確計算精度的數字可以直接使用float或double運算,但是如果需要精確計算的結果,則必須使用類,而且使用類也可以進行大數的操作。ava.math.BigDecimal。BigDecimal一共有4個夠造方法,讓我先來看看其中的兩種用法:第一種:

js乘除運算時失去精度問題解決方法

加法:/**       * 加法運算,避免資料相加小數點後產生多位數和計算精度損失。       *       * @param num1加數1 | num2加數2       */      fu

MATLAB之乘除運算

即使 隱藏 cnblogs 運算 matlab 矩陣 可能 .com atl 在MATLAB軟件中,不需要定義變量,直接賦值使用即可 在command window中做實驗即可 使用;號可以隱藏結果 上述為數值運算,我們可能

js實現兩個文本框數值的乘除運算

element tle utf-8 運算 tel 加減 value 加減乘除 tex <!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></

JS 浮點乘除運算

動態控制 pan nbsp lac cnblogs oat 浮點 spa log //浮點數加法運算 function FloatAdd(arg1,arg2){ var r1,r2,m; try{r1=arg1.toString(

BigDecimal乘除運算

clas multipl eva color illegal style ram 精確 port BigDecimal加減乘除運算 public static double add(double v1,double v2)public static double s

Js BigDecimal實現精確乘除運算的方法

func num 精確 pre fix 加減乘 結果 返回值 try 加法函數,用來得到精確的加法結果function accAdd(arg1, arg2) {var r1, r2, m, c;try {r1 = arg1.toString().split(".&

c語言設計簡單計算器實現乘除運算

      編寫程式的目的就是使程式有他應用的地方,編寫一個簡單的計算器來實現我們計算的目的。           利用swich  case 語句和迴圈結構來實現簡單程式的編寫。利用選擇語句來進行輸入的選

運算乘除運算

  1. 加法運算 13 + 9 = 21 // 13--0000 1101 // 9--0000 1001 十進位制思想: 不考慮進位,分別對各位數進行相加,結果為sum:  個位數3加上9為2;十位數1加上0為1; 最終結果為12; 只考慮

js 乘除運算 進度問題 解決方案

//加法函式 function accAdd(arg1, arg2) { var r1, r2, m; try { r1 = arg1.toString().split(".")[1].length; } catch (e) {

使用面向物件的程式設計思想實現乘除運算

指令碼1Main 函式的程式碼: using System; using System.Collections.Generic; using System.Linq; using System.Tex

java之BigDecimal的乘除

在小數之間加減乘除的時候,由於二進位制不能精確表示小數,從而導致精度丟失。在實際開發中,這種情況是很糟糕的。為了解決這一情況,我們可以利用BgiDecimal。但是這中間還有些問題需要注意的。 1、加減乘 首先,我們來看一個例項

java實現多項式的乘除

package polynomial; public class Polynomial { Polynomial next; double data; // 係數值 int power; // 冪值 public Polynomial(){ this(