java - Android : How to get just two digit after the point in decimal value ? 不想截断值

标签 java android math android-layout

如何获取小数点后两位的double值。

例如,如果 a = 190253.80846153846 那么结果值应该像 a = 190253.80

尝试: 我试过这个:

public static DecimalFormat twoDForm = new DecimalFormat("#0.00");

在代码中

a = Double.parseDouble(twoDForm.format(((a))));

但我得到的值是 190253.81 而不是我想要的值 190253.80

那么我应该为此改变什么??

最佳答案

因为 Math.round() 返回最接近参数的 int。通过加 1/2、取结果的底数并将结果转换为 int 类型,将结果四舍五入为整数。 使用 Math.floor()

示例

 public static double roundMyData(double Rval, int numberOfDigitsAfterDecimal) {
                  double p = (float)Math.pow(10,numberOfDigitsAfterDecimal);
              Rval = Rval * p;
              double tmp = Math.floor(Rval);
              System.out.println("~~~~~~tmp~~~~~"+tmp);
              return (double)tmp/p;
              }

完整源代码

class ZiggyTest2{


        public static void main(String[] args) {  
             double num = 190253.80846153846;
              double round = roundMyData(num,2);
              System.out.println("Rounded data: " + round);
              }

              public static double roundMyData(double Rval, int numberOfDigitsAfterDecimal) {
                  double p = (float)Math.pow(10,numberOfDigitsAfterDecimal);
              Rval = Rval * p;
              double tmp = Math.floor(Rval);
              System.out.println("~~~~~~tmp~~~~~"+tmp);
              return (double)tmp/p;
              }
            }

关于java - Android : How to get just two digit after the point in decimal value ? 不想截断值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8643995/

相关文章:

Java反射-错误抛出

java - 人们可以轻松访问 Android Realm 文件吗?

java - "Nested"回收者 View

java - Project Euler #10 Java 解决方案不起作用

javascript - 计算距每个树节点的水平距离

java - 如何高效地将一个Bitmap对象读入一个二维整型数组?

java - 如何在kotlin中获取多维原始数组类?

java - 动画一条线绕一圈

java - 将背景图像更改为随机

javascript - 地球绕太阳转