1. 程式人生 > >java浮點數除法中零的問題

java浮點數除法中零的問題

1,浮點數除法中零的問題

 1.1如果除法運算子的兩個運算數都是整數,則除數不可以為0,否則會引發除零異常。

如:int  a = 3/0;    //將會出現異常

1.2如果除法運演算法的兩個運算數有1個浮點數,或者有兩個浮點數,則運算結果也是浮點數。而且此時允許除數為0、或者除數為0.0,得到的結果將是正無窮大(Infinity)或者負無窮大(-Infinity)。

如:double d = -3.0/0;         //結果為 -Infinity

1.3 如果兩個運算數是0.0和0.0、0.0和0、0和0.0三種中的任一種組合,得到的結果都是非數(NaN)。

如:System.out.println(0.0/0);    //結果為NaN  

相關推薦

java點數除法的問題

1,浮點數除法中零的問題  1.1如果除法運算子的兩個運算數都是整數,則除數不可以為0,否則會引發除零異常。 如:int  a = 3/0;    //將會出現異常 1.2如果除法運演算法的兩個運算

點數除法的問題

1如果除法運算子的兩個運算數都是整數,則除數不可以為0,否則會引發除零異常。 如:int  a = 3/0;    //將會出現異常   2如果除法運演算法的兩個運算數有1個浮點數,或者有兩個浮點數,則運算結果也是浮點數。而且此時允許除數為0、或者除數為0.0,得

Java點數轉人民幣讀法

pri HR long 分解 個數 統一處理 得到 ngs i++ Java浮點數轉人民幣讀法 把【整數部分】的數字,由個位開始,4個數字分為一組,最高位沒有數字就補0,並記錄總共的數組個數,總共有3組,也就3*4的二維數組; 對於每個數組統一處理,最後將最開頭的“零

java點數精度損失原理和解決

我所在的公司近期要做一個打賞的功能,比如說發一張照片其他人可以對這張照片進行打賞,給些小錢。我的工作是負責給客戶端下發打賞訊息。工作完工之後客戶端同學說有個問題,我下發的打賞金額是string型別的,他們覺得double才對。於是我就去找老大問這個能不能改成double型別,老大說這個應該

java 點數轉整數精度處理

System.out.println("------case1------"); BigDecimal bigDecimal = new BigDecimal(37.98); System.out.println(bigDecimal); //37.9799999999999968736

點數(實數)單精度與雙精度區別

#在記憶體中儲存格式的區別: folat單精度:1位訊號(0為正1為負),8位1位元組為指數,最後23位為小數部分 ##double雙精度:1位訊號(0為正1為負),11位為指數,最後23位為小數部分 從儲存的不同可以看出單精度在長度上已經小雙精度一倍,當對資料型別的精度要求不高(±3X

Java 點數相加

  剛剛遇到個需求,需要對金額求和,上線的時候才知道這時個,這個欄位是個小數。   隨手就改了個Double ,然後,跑下,沒啥問題,直接上線了   然後,就fuck 了   加出一大堆的小數,大概是這樣的   package com.venn.demo; public class

JAVA點數求和的坑

最近在開發一個專案,專案中需要對浮點數求和。 背景是表設計的時候是Float型別,在Java程式碼中需要對一個集合物件的float欄位求和,進行比較大小。 編碼思路,定義一個臨時變數Float型別,然後臨時存放集合中的和。 結果發現比較都是False,很納悶。打印出來,發現Floa

Java點數float,bigdecimal和double精確計算的精度誤差問題

1.double小數轉bigdecimal後四捨五入計算有誤差 案例: double g= 12.35; BigDecimal bigG=new BigDecimal(g).setScale(1, BigDecimal.ROUND_HALF_UP); //期望

java 點數表示詳解及解決方法(例項函式)

定點數表達法的缺點在於其形式過於僵硬,固定的小數點位置決定了固定位數的整數部分和小數部分,不利於同時表達特別大的數或者特別小的數。 計算機系統採納了所謂的浮點數表達方式。這種表達方式利用科學計數法來表達實數,即用一個尾數(Mantissa也叫有效數字 ),一個基數(Base

Arith.java--點數運算 -- 由於Java的簡單型別不能夠精確的對點數進行運算,這個工具類提供精確的點數運算,包括加減乘除和四捨五入。

package com.boco.common.util; import java.math.BigDecimal; /** * 由於Java的簡單型別不能夠精確的對浮點數進行運算, <br>這個工具類提供精確的浮點數運算,包括加減乘除和四捨五入。 *

Java點數double/float和bigdecimal的精度之別

      咋眼一看,好像有幾個名詞。       浮點數,相對定點數而言。定點數,約定機器中所有資料的小數點位置是固定不變的。由此可見,定點數的形式不靈活,固定的小數點位置決定了固定位數的整數部分和小數部分,不利於表達特別大或特別小的數。浮點數由此在計算機中更多地應用,可

Java點數相減造成損失的簡單解決方法

今天遇到個問題:double m1 = 0.09    m1 = m1 - 0.05    結果m1卻不是0.04而是0.039999999999999994! 查資料說是java遵循IEEE754浮點數的運算規範,使用分數與指數表示浮點數 如:0.5

深入理解計算機系統(2.8)---點數的舍入,Java的舍入例子以及點數運算(重要)

https://www.cnblogs.com/zuoxiaolong/p/computer12.html 前言     上一章我們簡單介紹了IEEE浮點標準,本次我們主要講解一下浮點運算舍入的問題,以及簡單的介紹浮點數的運算。   之前我們已經提到過,有很多小數是二進位制

點數的那些坑,Java的金額處理方案

Java中的浮點數由於精度問題經常出現意料之外的結果,而我們又不得不和RMB打交道的 有任何問題,歡迎Email to: [email protected] 1.舉個栗子: public static void main(String[] args) {Syst

java 點數轉為字串

float scale = this.getResources().getDisplayMetrics().density; tv_hello.setText(Stri

Java點數比較

前幾天有位同學問我一個問題,為什麼float和double不能直接用==比較? 例如: System.out.println(0.1d == 0.1f);   結果會是flase 當時我只是簡單的回答,因為精度丟失,比較結果是不對的。 那麼,到底為什麼不

python格式化指定補和整數點數的位數

在廖雪峰老師的教程裡字串和編碼這一章有這樣一段描述: 這是什麼意思呢? 對整數來說,在%和d之間加上的數值表示需要格式化的這個整數佔的位數,而再加入一個0就是說要在沒有數的空位上補零。例如“%0Ad”%(5)就是說5這個數佔了A那麼多個位置,但是5只有一個數,所以在其他位

C和Java如何控制點數的精度輸出

1、C語言中可以通過輸出格式說明符來控制浮點數的輸出,如:%2.3f,整數位置的2表示整數部分固定以2位寬度輸出,如果資料的位數小於2(且禁止輸出小數的情況下,即%2.0f),則左端補以空格,否則按實際位數輸出;若大於2,則按實際位數輸出。小數位置的3表示輸出精確到小數點後

C語言點數在內存的存儲方式

大端 部分 由於 包含 指數 類型 計算機 data- trac 關於多字節數據類型在內存中的存儲問題 //////////////////////////////////////////////////////////////// int ,short 各