發表文章

目前顯示的是 10月, 2014的文章

【 Android 】float / double 計算失去精度

圖片
今天在數值運算的時候,發現一個問題: getValue = 1619; seekbarInvalue = getValue * 0.01 ; seekbarInvalue += 0.1 ; 運算出來的結果是: 為什麼浮點數會失去精度? A: 二進制表示可能不夠精確,浮點數值沒辦法用十進制來精確表示的原因可能是cpu表示的浮點數的方法,若是這樣就需要在運算的時候犧牲一些精度; 例如2.4的二進制表示並非是2.4,而是最接近的表示是 2.3999999999999999。 您可以使用Binary Coded Decimal (BCD)来保持精度。BCD數字編碼方法會把每一个十進制數字單獨編碼; BCD碼的主要優點是在機器格式與人可讀的格式之間轉換容易,以及十進制數值的高精度表示。BCD碼的主要缺點是增加了實現算術運算的電路的複雜度,以及儲存效率低。 而在android裡有以下方法可以運算浮點數: 1.  Math . round ( value * 100 ) / 100.0;   // 返回x最接近的整数,如果x的小数部分大于等于0.5,返回值是大于x的最小整数,否则round函数返回小于等于x的最大整数 2.  Math . floor ( seekbarInvalue * 100 ) / 100.0;  // Math.floor()方法會傳回小於或等於給定數值(輸入參數)的最大整數。 3.  DecimalFormat df = new DecimalFormat ( "#0.00" ) ;    double Value = new Double ( df . format ( value )) ; // DecimalFormat用法 4. 使用 math.BigDecimal 的運算是精度較高的方式,並且一定要轉作string /**      * 提供精确的加法运算。      * @param v1 被加数      * @param v2 加数   ...

臍帶血

由於自已的寶寶快要出生了,而有長輩建議我們去儲存臍帶血,但由於目前儲存臍帶血的話題非常新穎和熱門,但我相信大部份的家長還是會搞不清楚是否儲存臍帶血,儲存臍帶血要幹嘛?儲存了是否真的有用? ; 我自已也是這一部份的家長,所以利用了一點點的時間上網爬了一下文章,在這裡與大家分享一下, 如果有錯誤再請大家不吝指教,非常感謝 。 一、何謂臍帶血?          嬰兒出生後留在胎盤與臍帶靜脈的血,即為臍帶血 。傳統上胎盤在生產完後立即丟棄。 二、為何要儲存臍帶血?         臍帶血富含「零歲」的「幹細胞」,幹細胞是一種介於胚胎細胞和分化細胞的中間細胞,是一群未分化的細胞,具有再生新細胞及分化特定的組織器官的能力 ,於是具有無限制的分裂能力,可分化成特定組織 。 如同骨髓一樣,臍帶血中含有豐富且是最接近胚胎的幹細胞,稱為造血幹細胞。它能製造人體血液、骨髓與免疫系統內的主要成分。       臍帶血造血幹細胞可以用來治療白血病、淋巴瘤、地中海型貧血、黏多醣症、血液再生不良、先天性免疫不全及自體免疫疾病,也可以在癌症化學治療或放射線治療後,幫助病人造血系統的再生。間質幹細胞具有分化成脂肪、軟骨細胞、硬骨細胞、星形細胞、肌腱細胞、造血細胞支持基質、骨骼肌細胞、平滑肌細胞、心肌細胞、神經細胞及神經膠質細胞的功能,因此臍帶血具有造血功能和修補組織的用途。 三、到底需不需要儲存臍帶血?         臍帶血儲存的用途,一直有「自存自用」或「互助醫療」等不一的看法,  但是 據美國紐約捐血中心的估計,新生兒將來需要用到自己臍帶血的機率是1/10000,而美國國家衛生研究院估計自存自用的比率只有1/20000 。目前全世界已有200家公私立的臍帶血庫,非親屬間的臍帶血移植超過數千例,手足間的臍帶血移植也有數百例,自體移植機率更是小,如果成年人需要臍帶血移植,現今會面臨臍帶血量不足的問題,需合併使用他人的臍帶血。        目前台灣3個公益性質的臍帶血庫,累計的臍帶血達17400袋。而發展較早的日本的臍帶血庫有11家,完成4000例臍帶血移植,同時對臍...