1. 程式人生 > >Android獲取資料時 浮點型整數位數值(超8位)過大導致科學計數法

Android獲取資料時 浮點型整數位數值(超8位)過大導致科學計數法

今天在調介面時,有個實體變數A我定義float型別,當該變數的整數值超過8位的時候會出現科學計數法的情況 

例如 19085161.59,顯示成1.454654864E的情況

本來可以用String型別接收該欄位,但由於需要該數值做運算,所以想不改變原有型別

一開始想過顯示時通過 String.format("%." + m + "f", f);方式處理,數值比較時用原有資料,但想想以後其他資料如果要顯示都要這樣操作,嫌麻煩就放棄了。

最終方案,最後想起java有個BigDecimal類,尋思著能不能通過他來解決,通過檢視原始碼,發現他是繼承Number抽象類

public class BigDecimal extends Number implements Comparable<BigDecimal>, Serializable {}

最後把實體變數A定義成 

BigDecimal A;

最後測試發現可以解決這個問題.

其實這個BigDecimal類還是很適合作實體數字變數,因為Number類有很多抽象方法,可以通過呼叫這些方法獲取各種型別的值

public abstract class Number implements java.io.Serializable {

    public abstract int intValue();


    public abstract long longValue();


    public abstract float floatValue();


    public abstract double doubleValue();


    public byte byteValue() {
        return (byte)intValue();
    }
    public short shortValue() {
        return (short)intValue();
    }

    private static final long serialVersionUID = -8742448824652078965L;
}

相關推薦

Android獲取資料 整數數值8導致科學計數

今天在調介面時,有個實體變數A我定義float型別,當該變數的整數值超過8位的時候會出現科學計數法的情況 例如 19085161.59,顯示成1.454654864E的情況本來可以用String型別接收該欄位,但由於需要該數值做運算,所以想不改變原有型別一開始想過顯示時通過 

加減乘除解決運算精度丟失問題

package dealNumber; import java.math.BigDecimal; /** * 進行BigDecimal物件的加減乘除,四捨五入等運算的工具類 * * @author Yuk */ public clas

android中listview的item選切換實現效果選擇器selector

public class V2_Adapter_TarentoCreateActivity_OverSea_City extends BaseAdapter{private V2_TarentoCreateActivity_OverSea_Place v2_TarentoCreateActivity_Over

fso獲取資料夾下檔案個數和顯示檔名無後綴

 感謝sayhito333提供給我這段程式碼,為表示感謝,不修改其宣傳性的函式名了,呵呵! <%path = "database/"sub sayhito333(path)dim fsodim objFolderdim objFilesdim objFiledi

python獲取目錄下所有的檔案並修改檔名隨機8字元竄名字

class ChangeName(object): def getRandom(self): seed = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" sa = [] for

excel/csv等表格匯出資料數字型別長出現科學計數的解決方案

和匯出excel/csv的方式或者語言沒有太大關係 Excel顯示數字時,如果數字大於12位就會自動轉化為科學計數法 如果數字大於15位,它不僅用於科學技術費表示,還會只保留高15位,其他位都變0。

Android 當小數點後為0自動去掉

import java.text.DecimalFormat; import java.text.NumberFormat; public class asdf {public static void

正確生成的方法,解決sqlachemy Float的坑,生成float類,長度和精度均為0,導致查詢不到結果!

依然 tab 圖片 control 選擇 分享 ice mod ble 問題描述 在使用flask_sqlachemy時,給price字段選擇了Float類型,數據庫用的mysql,生成數據庫表後,發現 from sqlalchemy import Float

☆ C++ 資料使用 "cout" 輸出

最近在使用printf()輸出浮點數的時候,突然想到可不可以使用cout輸出呢? 於是果斷的去嘗試了一下: bang~ 後面的0都不見了? 你像printf()可以直接控制" .n%f " 來決定小數點後的位數,但是cout呢?? 當然有辦法解決這個問題: ******

新生入學需要儲存學生資料,現在定義整變數存放年齡,學號,定義字元變數存放性別,定義變數存放學分數

順序結構及其流程     void main()                 /*main 函式,程式的入口*/  {       

資料的使用

/* * 浮點型資料 */ public class one1{ public static void main(String[] args){ float x=33.3f; float y=1.234567F; double z=35.34d; double m=56;

正確生成的方法,解決sqlachemy Float的坑,生成float型別,長度和精度均為0,導致查詢不到結果!

問題描述 在使用flask_sqlachemy時,給price欄位選擇了Float型別,資料庫用的mysql,生成資料庫表後,發現   from sqlalchemy import Float,Column price = Column(Float,default=0.00) &

整形數int、資料float,在記憶體中儲存的表示

引言: 突然想到一個底層問題。 計算機組成原理裡學的:定點整數 定點小數 浮點數; 程式設計裡的基本資料型別int float在記憶體中的儲存形式; 二者究竟的對應關係是? CSDN部落格裡有這樣一句話,“實數在記憶體中以規範化的浮點數存放”,請先理清“實數”是多大範圍再回味這句話! 我在書上看到

MFC中CString類字串與長整、字元陣列char資料之間的相互轉換

一、長整型資料與CString類字串相互轉換 1.將長整型資料轉換為CString字串類 CString str; long ld; str.Format(_T("%ld"),ld); 2.將CString字串類轉換為長整型資料 CString str; long ld; ld=

JAVA初級(一)認識八大基礎資料型別(2)-,字元,布林

我是導航 1,浮點型float,double 2,字元型char 3,String是什麼? 4,布林型boolean 一,浮點型:float,double 浮點型是什麼?通俗點說就是帶小數的數字。 float f = 0.3f; double b = 0.3; 什麼時

java中判斷兩個(float)資料是否相等

示例程式碼: public static void main(String[] args) { float a = 10.222222225f; float b = 10.222222229f; System.out.println("使用==判斷是否相等:" + (

☆ C++ 資料使用 "cout" 輸出

最近在使用printf()輸出浮點數的時候,突然想到可不可以使用cout輸出呢? 於是果斷的去嘗試了一下: bang~ 後面的0都不見了? 你像printf()可以直接控制" .n%f " 來決定小數點後的位數,但是cout呢?? 當然有辦法解決這個問題: **

PHP對於資料需要用不同的方法去解決

                Php: BCMathbc是Binary Calculator的縮寫。bc*函式的引數都是運算元加上一個可選的 [int scale],比如string bcadd(string $left_operand, string $right_operand[, int $scale

python 字串和整數互相轉換

轉載:http://www.cnblogs.com/chenfulin5/p/7813791.html 在程式設計當中,經常要用到字串的互相轉換, 現在記錄 python 裡面的字串和整數是怎麼轉換的。 int(str) 函式將 符合整數的規範的字串 轉換成 int 型。

python資料型別之

python提供了三種浮點值:內建的float與complex型別,以及標準庫的decimal.Decimal型別。 float型別存放雙精度的浮點數,具體取值範圍依賴於構建python的c編譯器,由於精度受限,進行相等性比較不可靠。 如果需要高精度,可使用