大值丢失准确性

时间:2015-08-09 07:23:53

标签: java double bigdecimal

我遇到大值问题。 请帮帮我。

Scanner scanner=new Scanner(System.in);
            double rate=1.0000;
            double value=scanner.nextDouble();
            value*=rate;
                BigDecimal bigDecimal=new BigDecimal(value);
            System.out.println(bigDecimal);

但是当我输入输入

121212121212121212121212121212121212121212121212

我的输出是

121212121212121209445819616146456785067331026944

请帮帮我。 我怎样才能准确地获得价值?

1 个答案:

答案 0 :(得分:1)

如果使用BigDecimal初始化double,则使用Scanner scanner=new Scanner(System.in); String value=scanner.nextLine(); BigDecimal bigDecimal=new BigDecimal(value); System.out.println(bigDecimal); 毫无意义。

您应该使用String初始化它:

bigDecimal.multiply(...)

如果您希望将输入乘以1以外的值(乘以1毫无意义),请使用org.apache.catalina.core.StandardContext.listenerStart Error configuring application listener of class play.core.server.servlet25.Play2Servlet java.lang.ClassNotFoundException: play.core.server.servlet25.Play2Servlet