显示正常数而不是指数形式

Sha*_*zad 3 double android normalization bigdecimal primitive-types

我想以正常形式而不是指数形式显示数字

例如,我的号码存储在一个值为 1234567890123 的双精度变量中

我想得到确切的表示。但是当我将它传递给一些 TextView 进行显示时,它变成了 1.234E12

Irs*_*han 5

尝试使用 java 中的 Big decimal 类..

Big decimal class 具有一些内置 Rounding 函数的优点,您可以使用它,例如:

Double a = 7.77d * 100000000; //Multiply Operation

System.out.println("Large multiply " + a.doubleValue());

System.out.println("Magic of big decimal " + BigDecimal.valueOf(a).setScale(0,RoundingMode.HALF_EVEN).toPlainString());

a = 7.77d / 100000; //Devide Operation

System.out.println("Devide operation " + a.doubleValue());

System.out.println("Magic of big decimal " + BigDecimal.valueOf(a).toPlainString());

DecimalFormat formatter = new DecimalFormat("0.000000");

System.out.println("Trimming the big string : "+formatter .format(a)); 
Run Code Online (Sandbox Code Playgroud)

输出 :

Large multiply 7.77E8

Magic of big decimal 777000000

Devide operation 7.769999999999999E-5

Magic of big decimal 0.00007769999999999999

Trimming the big string : 0.000078
Run Code Online (Sandbox Code Playgroud)