gpt4 book ai didi

java - 通过用户输入指定精确的小数位数,Java

转载 作者:行者123 更新时间:2023-11-30 06:15:42 24 4
gpt4 key购买 nike

我正在编写一个计算器程序,用户在最后一个输入提示中写入小数点位数(1、2、3...),例如 2 个数字之和的输出应该具有的小数点位数。

import java.util.Scanner;
import java.util.Formatter;

public class Lab01 {

public void start(String[] args) {

double cislo1;
double cislo2;
int operacia;
String decimal;
String dec;

Scanner op = new Scanner(System.in);
System.out.println("Select operation (1-sum, 2-dev, 3- *, 4- / )");
operacia = op.nextInt();
if (operacia >= 1 && operacia <= 4) {
if(operacia == 1) {
Scanner input = new Scanner(System.in);
System.out.println("Enter number one:");
cislo1=input.nextDouble();
System.out.println("Enter number two:");
cislo2=input.nextDouble();

System.out.println("Enter number of decimal points");
decimal=input.nextLine();

dec="%."+decimal+"f";

Formatter fmt = new Formatter();
fmt.format(dec, cislo2);
System.out.println( fmt);
}
} else {
System.out.println("wrong!");
}
}
}

我已尝试使用 Formatter 方法进行十进制输入,但错误提示“Conversion = '.'” ”

System.out.println("Enter number of decimal points");
decimal = input.nextLine();
dec = "%." + decimal + "f";
Formatter fmt = new Formatter();
fmt.format(dec, cislo2);
System.out.println(fmt);

最佳答案

你的变量decimal应该是一个int。所以你应该更改以下几行:

String decimal;

您应该更改为:

int decimal;

还有:

decimal = input.nextLine();

您应该更改为:

decimal = input.nextInt();

或者,如果您想将其保留为字符串,则可以在读取小数位数之前添加额外的 input.nextLine(); 。发生这种情况是因为 nextLine() 消耗了您正在读取 cislo2 变量的行分隔符,而 nextInt() 只会读取 int。

关于java - 通过用户输入指定精确的小数位数,Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49255290/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com