1. 程式人生 > >基本資料型別--浮點數不精確的原因

基本資料型別--浮點數不精確的原因

浮點數 

float  

記憶體表達方式

   符號位    指數位       小數位

float 1位(第31位)  8位(第30-23位)     23位(第22-0位)4位元組

double    1位(第63位) 11位(第62-52位)    52位(第51-0位) 8位元組

float 範圍           -3.4*10^38~3.4*10^38 

double範圍  -1.79*10^308 ~1.79*10^308

float和int位元組數一樣,則二進位制表示的數字個數一樣,但是float取值範圍卻比int大,float取值不連續

float表示的數不精確

float i=123456789;

printf("%f",i);

列印結果是123456789

而且由於浮點數記憶體表示複雜,所以浮點數的運算速度慢

相關推薦

基本資料型別--點數精確原因

浮點數  float   記憶體表達方式    符號位    指數位       小數位 float 1位(第31位)  8位(第30-23位)     23位(第22-0位)4位元組 double    1位(第63位) 11位(第62-52位)    52位(第51-

Java基本資料型別以及由可變類帶來的值傳遞和引用傳遞的難點分析

一、Java提供的資料型別 Java提供了8中原始的資料型別(byte,short,int,long,float,double,char,boolean),這些資料型別不是物件,相應的變數被定義後會立刻在棧上被分配記憶體空間。除此之外的資料型別,都是引用型別,引用型別在變數

方法能改變基本資料型別的的值

在呼叫方法時,若要使方法改變實參的值,可以(B) A)用基本資料型別作為引數 B)用物件最為引數 C)A和B都對 D)A和B都不對 分析: public static void main(String[] args) { int i = 1; changeObj(i); System.out.pr

為什麼泛型類的型別能是基本資料型別

1.泛型的定義:在程式中我們將一個物件放入集合中,但是集合不會記住物件的型別,當我們在次使用物件的時候,物件變為Object型別,而程式中還是原來的型別,我們必須要自己轉換其型別,為了解決這個問題,則提出泛型。 2.泛型要求包容的是物件型別,而基本資料型別在Java中不屬於物件。但是基本資料型別

Java集合能存放基本資料型別

Java集合不能存放基本資料型別,只能存放物件的引用。 每個集合元素都是一個引用變數,實際內容都存放在堆內或方法區裡面, 但是基本資料型別是在棧記憶體上分配空間的,棧上的資料隨時會被收回。 如何解決? 可以通過包裝類,把基本資料型別轉化為物件型別,存放引用。 更方便的,由於有了自動拆箱和裝箱功能,基

java保留基本資料型別原因

        java中有8中基本資料型別,分別是boolean,char,byte,short,int,long,float,double這8種,但是我們可曾思考過,java明明是一種面向物件的語言,為什麼還要保留基本資料型別呢?   &nb

PC逆向之程式碼還原技術,第一講基本資料型別在記憶體中的表現形式.點,指標定址公式

目錄 程式碼還原技術 一丶簡介程式碼還原 例子一:我們很多人都學習過彙編.但是彙編的核心知識就是我能看的懂.有人拿彙編去做外掛.比如我去追偏移.看著視訊去做.然後換一個遊戲依然這樣.但是終有一天,你可能發現沒意思了.因為這些知識都是死的.比如我們想看遊戲中,這段程式碼做了什麼事情.這個時候就需要將彙編轉為

使用springmvc從頁面中獲取資料,然後根據獲得的引數資訊進行修改,如果修改的資料中含有基本資料型別的引數。比如傳的引數中有Date型別資料時,需要我們進行引數型別轉換。

1.1 需求   在商品修改頁面可以修改商品的生產日期,並且根據業務需求自定義日期格式。 1.2 需求分析   由於日期資料有很多格式,所以springmvc沒辦法把字串轉換成日期型別。所以需要自定義引數繫結。前端控制器接收到請求後,找到註解形式的處理器介面卡,對RequestMapping標記的方法進

5. C語言基本資料型別及構造資料型別點型儲存規則及記憶體模型

  其實學習C語言的時候有一件很頭疼的事就是各種各樣的資料型別,不同的場合不同的用途不同的資料要使用不同的資料型別,那又為什麼要分出這麼多種型別呢,因為型別決定了開闢空間的大小,開闢空間的大小又決定了儲存的範圍。今天,就資料型別這個問題我們來掰扯掰扯。   C

Java_8_基本資料型別_點型

型別 佔用儲存空間 表數範圍 Float 4位元組 -3.403E38~3.403E38 Double 8位元組 -1.798E308~1.798E308 浮點數常量預設型別是double,要將其變為float型別,需要在後面增加F/f。如:3.14Ffloat型

Java基本資料型別取值範圍,為什麼String 基本資料型別,char的取值範圍為什麼沒有負數

一、在JAVA中一共有八種基本資料型別,他們分別是 byte、short、int、long、float、double、char、boolean 整型 其中byte、short、int、long都是表示整數的,只不過他們的取值範圍不一樣 byte的取

1.String物件和常量池 2.基本資料型別和封裝類(128以下等做快取)

序言: 基礎知識: 1.java的基本型別:    字元型別char,布林型別boolean以及數值型別byte、short、int、long、float、double 2.引用型別    Java有 5種引用型別(物件型別):類 介面 陣列 列舉 標註    引用型

js-基本資料型別-你知道的趣味題

趣味1:原生js實現字串轉為陣列,反轉陣列 /*寫個js函式func(str),傳參str為一個字串,實現把這個字串語句中的單詞(空格隔開的)次序逆序。 比如把 I am a coder變成 coder a am I,不允許使用reverse,join,s

Java為什麼基本資料型別需要進行建立物件?

Java是一門面向物件的語言,即一切皆是物件!那麼為何資料型別中還分為:基本型別和物件?         Java中有8種基本資料型別boolean、byte、short、char、int、flaot

使用@Convert註解將List等基本資料型別的變數存入的資料庫中

@Convert 可將不是基本資料型別的資料按照一定的格式轉換成可存入資料庫的基本型別,類似於自動拆裝箱操作。 1、新建Converter類 2、實現javax.persistence.AttributeConverter包下的AttributeConve

Java集合能存放基本資料型別,只存放物件的引用

Java集合如Map、Set、List等所有集合只能存放引用型別資料,它們都是存放引用型別資料的容器,不能存放如int、long、float、double等基礎型別的資料。 1. 集合儲存物件 Java集合中實際存放的只是物件的引用,每個集合元素都是一個引用

Java中8種基本資料型別及其預設值

Java語言中有8種基本資料型別,基本情況彙總如下: Java中8種基本資料型別總結 序號 資料型別 大小/位 封裝類 預設值 可表示資料

包裝類(Integer/Boolean等、字串與基本資料型別轉化,-127-128自動裝箱入池)

為什麼要有包裝類? Object類可以接收所有引用資料型別。然而在Java中,資料型別分為基本資料型別和引用資料型別,那麼基本資料型別如何處理呢? 使用包裝類 :包裝類是將基本資料型別封裝到類中,因為Object無法接受基本資料型別,封裝成類後就可以用Object類來接收。 簡單定義一個in

Java初認識--基本資料型別(int 和byte之間賦值)預設值 型別強轉

主類和主方法 Test.java–是原始檔,原始檔必須與主類名(public class )保持一致,一個原始檔只能有一個主類 ,主方法存在與主類中。 Test.java 原始檔 主類:public class Test 主方法 : public static void main(Strin

python基礎—基本資料型別二(set 集合,深淺拷貝)

1、基礎資料型別彙總補充 str int list bool dict tuple 2、集合 set {} 可變的資料型別,(不可雜湊)裡面的元素必須是不可變的資料型別,無序,不重複 以下是集合最重要的兩點:   去重,把一個列表變成集合,就自動去重了。   關係測試,測試兩組資料之前的