显示没有科学记数法的双变量的值

Posted

技术标签:

【中文标题】显示没有科学记数法的双变量的值【英文标题】:Displaying value of a double variable without Scientific Notation 【发布时间】:2017-05-05 10:19:59 【问题描述】:

我有两个数据类型为 double 的变量,当我将这些变量相乘时,它们以科学形式返回结果,但我的要求是以正常的人类可读形式显示结果。 例如: 当我将 9854795 和 8.9 相乘时,它返回结果为 8.77076755E7 而不是 87707675.5

这是我计算值的函数:

private void calculatingTotalPaymentAmount() 

    if (editTextBookingQuantity.getText().toString().equals(""))
    
        editTextBookingQuantity.setError("Enter Booking Quantity to calculate Total Payment Amount");
        return;
     else if (editTextRatePerBrick.getText().toString().equals(""))
    
        editTextRatePerBrick.setError("Enter Rate Per Brick to calculate Total Payment Amount");
        return;
     else 

        //MathContext mc = new MathContext(4); // 4 precision
        final double catchBookingQtyDoubleForm = Double.parseDouble(editTextBookingQuantity.getText().toString());
        final double catchRatePerBrickDoubleForm = Double.parseDouble(editTextRatePerBrick.getText().toString().trim());
        final double totalPaymentAmount = (catchBookingQtyDoubleForm * catchRatePerBrickDoubleForm);
        //bg3 = bg1.multiply(bg2, mc);
        //BigDecimal newValue = totalPaymentAmount.setScale(0, RoundingMode.DOWN);
        editTextTotalPaymentAmount.setText(""+totalPaymentAmount);


    

【问题讨论】:

double totalPaymentAmount 将其更改为 BigDecimal 并检查 【参考方案1】:
Log.d("tag", "" + new BigDecimal(catchBookingQtyDoubleForm * catchRatePerBrickDoubleForm));

【讨论】:

以上是关于显示没有科学记数法的双变量的值的主要内容,如果未能解决你的问题,请参考以下文章

如何避免以科学记数法表示的双精度数和数字的字符串到数字转换?

从科学记数法到十进制记数法的数值

打印没有科学格式的双精度并四舍五入到最接近的整数[关闭]

将非常小的双精度值转换为字符串(使用科学计数法)(Java)

sqlserver中float转varchar时不显示科学计数法

Spyder 变量资源管理器:禁用科学记数法