⑴ java做除法運算,為什麼除不開時也會得到整數呢
除法運算/的功能是有區別的。如果相除的兩個數都是整數,那麼結果也是整數,這叫做取整除法。比如,3/2,結果是1。如果其中有一個是浮點數,那麼就是浮點除法,結果是浮點數,比如,3.0/2,結果是1.5.
⑵ 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(scale<0){
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(scale<0){
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();
}
};
分享
本回答由電腦網路分類達人 高德寶認證
其他類似問題
2009-02-08加減乘除運算(Java)14
2010-06-22Java實現有界面的簡單的兩個整數之間的加減乘除運算
2009-09-21myeclipse中java的加減乘除運算1
2011-05-27用java編寫計算器,,,要求加減乘除等運算。。。1
2011-09-15java中的String型怎麼實現數學的加減乘除運算?10
更多關於java簡單加減乘除的問題>>
為您推薦:
舉報| 2009-02-24 03:00
#為什麼很多走失的孩子無法找回?#
提問者採納
import java.util.Scanner;
class MakeOperation
{
public static void main(String[] args){
Scanner input=new Scanner(System.in);
Count count=new Count();
System.out.print("請輸入你要運算的第一個數:");
count.one=input.next();
System.out.print("請輸入你要進行運算的運算符:");
count.fu=input.next();
System.out.print("請輸入你要運算的第二個數:");
count.two=input.next();
if(count.fu.equals("+")){
count.outcome=Float.parseFloat(count.one)+Float.parseFloat(count.two)+"";
// 將字元串解析為數字,注意下如果輸入的不是數字程序會報錯,缺少健壯性代碼 }
System.out.println(count);
}
}
class Count{
String one;
String two;
String fu;
String outcome; // 結果
public String toString(){
return one+fu+two+"="+outcome;
}
}
下面的代碼修改了Count類里域的部分參數,增加了一個用於檢查輸入是否正確的類。
import java.util.Scanner;
class MakeOperation
{
public static void main(String[] args){
Scanner input=new Scanner(System.in);
Count count=new Count();
CheckOperation checkOpera=new CheckOperation();
System.out.print("請輸入你要運算的第一個數:");
count.one=checkOpera.checkNum(input);
System.out.print("請輸入你要進行運算的運算符:");
String[] operators={"+","-","*","/"};
count.fu=checkOpera.checkOperator(input,operators);
System.out.print("請輸入你要運算的第二個數:");
count.two=checkOpera.checkNum(input);
if("+".equals(count.fu)){
count.outcome=count.one+count.two;
System.out.println(count);
}
}
}
class Count{
float one;
float two;
String fu;
float outcome; // 結果
public String toString(){
return one+fu+two+"="+outcome;
}
}
class CheckOperation{
/*驗證數字,輸錯了會提示用戶重新輸入*/
public float checkNum(Scanner input){
float num=0f;
try {
num=Float.parseFloat(input.next());
} catch (NumberFormatException e) {
System.out.print("請輸入正確的數字: ");
num=checkNum(input); //直至獲取到正確的值
}
return num;
}
/*驗證輸入的符號是否正確*/
public String checkOperator(Scanner input,String[] operators){
String opera=null;
boolean judge=true;
opera=input.next();
for(String operator:operators){
if(operator.equals(opera)) judge=false;
}
if(judge) {
System.out.print("請輸入正確的運算符: ");
opera=checkOperator(input,operators);
}
return opera;
}
}
⑶ java divide函數原理
java divide函數BigDecimal 的加減乘除
BigDecimal bignum1 = new BigDecimal("10");
BigDecimal bignum2 = new BigDecimal("5");
BigDecimal bignum3 = null;
//加法
bignum3 = bignum1.add(bignum2);
System.out.println("和 是:" + bignum3);
//減法
bignum3 = bignum1.subtract(bignum2);
System.out.println("差 是:" + bignum3);
//乘法
bignum3 = bignum1.multiply(bignum2);
System.out.println("積 是:" + bignum3);
//除法
bignum3 = bignum1.divide(bignum2);
System.out.println("商 是:" + bignum3);
⑷ JAVA的加,減,乘,除運算方法
首先可以把計算器看成是一個對象就是一個類,它有加、減、乘、除功能,這四個就是這個類的方法;你可以給這個類定義兩個成員變數
int
x、int
y
然後分別用這四個方法對x
、y
實行加、減、乘、除並返回其值
代碼大概如下:
class
counter{
private
int
x;
private
int
y;
public
counter(){
}
public
counter(int
x,int
y){
this.x=x;
this.y=y;
}
public
double
adding(){
//加運算
return
x+y;
}
public
double
minus(){
//減運算
return
x-y;
}
public
double
times(){
//乘運算
return
x*y;
}
public
double
divide(){
//除運算
return
x/y;
}
}
//測試類
public
class
test{
public
static
void
main(string[]
args){
counter
c=new
counter(5,4);//實例化
system.out.println(c.adding());//輸出加的結果
system.out.println(c.minus());//輸出減的結果
system.out.println(c.times());//輸出乘的結果
system.out.println(c.divide());//輸出除的結果
}
}
希望對你有幫助
⑸ java的BIgInteger類中divideAndRemainder方法怎麼用
Java的BigInteger類中divideAndRemainder方法的用法是,先建一個BigInteger的對象a作為被除數,然後建一個BigInteger的對象b作為除數,
然後調用BigInteger類中divideAndRemainder方法,它返回一個包含兩個BigInteger對象(一個是商一個是余數)的數組c,
最後用BigInteger類的toString()方法把它們列印出來.
BigInteger類中divideAndRemainder方法的底層原理是二進制補碼的除法.你可以搜"二進制補碼的除法"得到結果.
完整的例子如下
import java.math.BigInteger;
public class F {
public static void main(String[] args) {
BigInteger a=new BigInteger("123456789012345");
BigInteger b=new BigInteger("9876543210");
BigInteger[] c=a.divideAndRemainder(b);
System.out.print(a.toString()+"除以"+b.toString()+"的商是");
System.out.println(c[0].toString()+",余數是"+c[1].toString());
}
}
⑹ java加減乘除是什麼類
java中實現加減乘除的類是java.math.BigDecimal類. BigDecimal 類提供以下操作:算術、標度操作、舍入、比較、哈希演算法和格式轉換。
加法運算:調用BigDecimal類的add方法即可
BigDecimalb1=newBigDecimal("1");
BigDecimalb2=newBigDecimal("2");
BigDecimalresult=b1.add(b2);//加法
System.out.println(result);
減法運算:調用BigDecimal類的subtract方法即可
BigDecimalb1=newBigDecimal(3.2);
BigDecimalb2=newBigDecimal(1.6);
BigDecimalresult=b1.subtract(b2);//減法
System.out.println(result);
乘法運算:調用BigDecimal類的multiply方法即可
BigDecimalb1=newBigDecimal(9);
BigDecimalb2=newBigDecimal(8.2);
BigDecimalresult=b1.multiply(b2);//乘法
System.out.println(result);
除法運算:調用BigDecimal類的divide方法即可。
注意: 除法運算存在除不盡的情況,比如1.0/3=0.333333.. 我們需要指定小數點後面的長度,以及有效的舍入模式(例如四捨五入模式).
BigDecimalb1=newBigDecimal("1");
BigDecimalb2=newBigDecimal("3");
intscale=5;//scale指定小數點後面的位數為5位
doubleresult=b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();//除法
//BigDecimal.ROUND_HALF_UP表示四捨五入
System.out.println(result);
備註:
1:BigDecimal的構造參數有很多,但浮點類型建議轉換成字元串類型, 避免精度的丟失.
doubled1=0.001;//浮點類型
Strings1=Double.toString(d1);//轉成字元串
BigDecimalb1=newBigDecimal(s1);//使用字元串作為構造參數
2:BigDecimal類, 內存佔用比基本類型多,並且為了計算的精度,速度比double慢一點.所以,只有在需要精確計算的情況下,才使用BigDecimal類進行. 普通運算,還是多使用+-*/運算符,位運算符等.