⑴ mysql中float用什麼類型
對於浮點列類型,在MySQL中單精度值使用4個位元組,雙精度值使用8個位元組。
FLOAT類型用於表示近似數值數據類型。SQL標准允許在關鍵字FLOAT後面的括弧內選擇用位指定精度(但不能為指數范圍)。MySQL還支持可選的只用於確定存儲大小的精度規定。0到23的精度對應FLOAT列的4位元組單精度。24到53的精度對應DOUBLE列的8位元組雙精度。
MySQL允許使用非標准語法:FLOAT(M,D)或REAL(M,D)或DOUBLE PRECISION(M,D)。這里,「(M,D)」表示該值一共顯示M位整數,其中D位位於小數點後面。例如,定義為FLOAT(7,4)的一個列可以顯示為-999.9999。MySQL保存值時進行四捨五入,因此如果在FLOAT(7,4)列內插入999.00009,近似結果是999.0001。
MySQL將DOUBLE視為DOUBLE PRECISION(非標准擴展)的同義詞。MySQL還將REAL視為DOUBLE PRECISION(非標准擴展)的同義詞,除非SQL伺服器模式包括REAL_AS_FLOAT選項。
為了保證最大可能的可移植性,需要使用近似數值數據值存儲的代碼應使用FLOAT或DOUBLE PRECISION,不規定精度或位數。
DECIMAL和NUMERIC類型在MySQL中視為相同的類型。它們用於保存必須為確切精度的值,例如貨幣數據。當聲明該類型的列時,可以(並且通常要)指定精度和標度;例如:
salary DECIMAL(5,2)
在該例子中,5是精度,2是標度。精度表示保存值的主要位數,標度表示小數點後面可以保存的位數。
在MySQL 5.1中以二進制格式保存DECIMAL和NUMERIC值。
標准SQL要求salary列能夠用5位整數位和兩位小數保存任何值。因此,在這種情況下可以保存在salary列的值的范圍是從-999.99到999.99。
在標准SQL中,語法DECIMAL(M)等價於DECIMAL(M,0)。同樣,語法DECIMAL等價於DECIMAL(M,0),可以通過計算確定M的值。在MySQL 5.1中支持DECIMAL和NUMERIC數據類型的變數形式。M默認值是10。
DECIMAL或NUMERIC的最大位數是65,但具體的DECIMAL或NUMERIC列的實際范圍受具體列的精度或標度約束。如果此類列分配的值小數點後面的位數超過指定的標度允許的范圍,值被轉換為該標度。(具體操作與操作系統有關,但一般結果均被截取到允許的位數)。
⑵ float是什麼數據類型
float是浮點型數據類型,FLOAT 數據類型用於存儲單精度浮點數或雙精度浮點數。
浮點數使用IEEE(電氣和電子工程師協會)格式。浮點類型的單精度值具有 4 個位元組,包括一個符號位、一個 8 位 二進制指數和一個 23 位尾數。由於尾數的高順序位始終為 1,因此它不是以數字形式存儲的。此表示形式為 float 類型提供了一個大約在 -3.4E+38 ~ 3.4E+38 之間的范圍。
c語言特點:
(1)簡潔的語言
C語言包含的各種控制語句僅有9種,關鍵字也只有32個,程序的編寫要求不嚴格且以小寫字母為主,對許多不必要的部分進行了精簡。
實際上,語句構成與硬體有關聯的較少,且C語言本身不提供與硬體相關的輸入輸出、文件管理等功能,如需此類功能,需要通過配合編譯系統所支持的各類庫進行編程,故c語言擁有非常簡潔的編譯系統。
(2)具有結構化的控制語句
C語言是一種結構化的語言,提供的控制語句具有結構化特徵,如for語句、if...else語句和switch語句等。可以用於實現函數的邏輯控制,方便麵向過程的程序設計。
(3)豐富的數據類型
C語言包含的數據類型廣泛,不僅包含有傳統的字元型、整型、浮點型、數組類型等數據類型,還具有其他編程語言所不具備的數據類型,其中以指針類型數據使用最為靈活,可以通過編程對各種數據結構進行計算。
⑶ 第04部分:浮點數類型
在Java中,實數使用float和double數據類型表示。float類型是32位單精度浮點數,double類型是64位雙精度浮點數。這兩種類型都符合IEEE 754-1985標准。這個標准規定了浮點數的格式和運算方式。
浮點數可以以字面量的形式寫在Java程序中,其格式為一些可選數字,後面跟一個小數點和一些數字,例如:
浮點數字面量還可以使用指數形式(科學計數法)表示。其格式為一個數後面跟著字母e或者E和一個數,第二個數表示10的次方,是第一個數的乘數。例如:
默認情況下,浮點數都是double類型,若想在程序中使用float類型,要在數字後面加上f或者F,例如:
浮點數字字面量不能使用十六進制,二進制或者八進製表示。
由於本質上的限制,大多數實數都不能使用有限的位數進行精確表示,因此要記住,float和double類型都只能表示實際值的近似值。float類型是32位近似值,至少有6個有效數字,double是64位近似值,至少有15個有效數字。
除了表示普通的數字之外,float和double還能表示四個特殊的值:正無窮大,負無窮大,零和NaN。如果浮點數運算的結果超出了float或double能表示的范圍上線得到的是無窮大。如果浮點數的運算結果超出了float或double能表示的范圍下限,得到的是零。
Java的浮點類型區分正零和負零,具體是哪個值取決於從哪個方向出現的下溢,在實際使用中,正零和負零的表現基本一樣。最後一種特殊的浮點數NaN,是「Not-a-Number」的簡稱,表示「不是數字」。如果浮點數運算不合法,例如0.0/0.0,得到的就是NaN,例如:
Java浮點數類型能處理到無窮大的上溢以及到零的下溢,因此浮點數運算從不拋出異常,就算執行非法運算也沒事,例如零除以零,或者計算負數的平方根。
float和double基本類型都有對應的包裝類,分別為Float和Double。這兩個類都定義了一些有用的常量,如:MIN_VALUE、MAX_VALUE、NEGATIVE_INFINITY、POSITIVE_INFINITY 和 NaN。
無窮大浮點數的表現和設想的一樣,例如,無窮大之間的加減運算得到的還是無窮大,負零的表現幾乎和正零一樣。而且實際上,相當判斷運算符==會告訴你,負零和正零是相等的,區分正零和負零還有普通的零有一種方法,把它作為被除數:1.0/0.0得到的是正無窮大,但是1.0/負零得到的是負無窮大。因為NaN不是數字,所以==運算符會告訴我們它不等於任何其它數字,甚至包括它自己,若是想檢查某個float或者double值是否為NaN,必須使用 Float.isNaN() 或 Double.isNaN() 方法。