我遇到大值问题。 请帮帮我。
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
请帮帮我。 我怎样才能准确地获得价值?
答案 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
。