new*_*132 5 java double parsing integer keyboard-input
我正在编写一个程序,我需要从键盘输入.我需要输入一个数字,但我不确定它是否是一个int或一个double.这是我的代码(针对该特定部分):
import java.io.*;
import java.util.*;
//...
Scanner input = new Scanner(System.in);
int choice = input.nextInt();
Run Code Online (Sandbox Code Playgroud)
我知道我可以得到一个String或做,parseInt()或者parseDouble()我不知道它会是哪一个.
那么,整数也是双倍的,所以如果你认为一切都是双重的,那么你的逻辑就可以了.像这样:
import java.io.*;
import java.util.*;
Scanner input = new Scanner(System.in);
double choice = input.nextDouble();
Run Code Online (Sandbox Code Playgroud)
如果您因任何原因需要输入为整数,它只会变得复杂.然后,用于测试int的parseInt()就可以了.
double不管它是什么,只要使用 a 就可以了。使用双精度值作为整数值并没有明显的损失。
Scanner input = new Scanner(System.in);
double choice = input.nextDouble();
Run Code Online (Sandbox Code Playgroud)
然后,如果您需要知道是否获得了双倍,您可以使用以下命令进行检查Math.floor:
if (choice == Math.floor(choice)) {
int choiceInt = (int) choice);
// treat it as an int
}
Run Code Online (Sandbox Code Playgroud)
不要搞乱catching NumberFormatException,不要在字符串中搜索句点(这甚至可能不正确,例如,如果输入是1e-3双精度 ( 0.001) 但没有句点。只需将其解析为 adouble并移动在。
另外,不要忘记, 和nextInt()都不nextDouble() 捕获换行符,因此您需要nextLine()在使用它们后使用 a 捕获它。
| 归档时间: |
|
| 查看次数: |
20574 次 |
| 最近记录: |