Ik moet controleren of een waarde een geheel getal is. Ik heb dit gevonden: Hoe te controleren of de invoerwaarde een geheel getal is of float?, maar als ik me niet vergis, is de variabele daar nog steeds van het type double
hoewel de waardezelf is inderdaad een integer
.
Antwoord 1, autoriteit 100%
Als de invoerwaarde een andere numerieke vorm dan een geheel getal kan zijn, controleer dan met
if (x == (int)x)
{
// Number is integer
}
Als een tekenreekswaarde wordt doorgegeven, gebruik dan Integer.parseInt(string_var).
Zorg voor foutafhandeling met try-catch voor het geval de conversie mislukt.
Antwoord 2, autoriteit 26%
Als je een double/float/floating point getal hebt en je wilt zien of het een geheel getal is.
public boolean isDoubleInt(double d)
{
//select a "tolerance range" for being an integer
double TOLERANCE = 1E-5;
//do not use (int)d, due to weird floating point conversions!
return Math.abs(Math.floor(d) - d) < TOLERANCE;
}
Als je een string hebt en wilt zien of het een geheel getal is. Gooi het resultaat Integer.valueOf()
bij voorkeur niet weg:
public boolean isStringInt(String s)
{
try
{
Integer.parseInt(s);
return true;
} catch (NumberFormatException ex)
{
return false;
}
}
Als je wilt zien of iets een Integer-object is (en dus een int
omhult):
public boolean isObjectInteger(Object o)
{
return o instanceof Integer;
}
Antwoord 3, Autoriteit 14%
if (x % 1 == 0)
// x is an integer
Hier x
is een numerieke primitieve: short
, int
, long
, float
of double
Antwoord 4, Autoriteit 9%
U moet de instanceof
gebruiken om te bepalen of uw waarde integer is of niet;
Objectobject = uw_value;
if(object instanceof Integer) {
Integer integer = (Integer) object ;
} else {
//your value isn't integer
}
Antwoord 5, Autoriteit 8%
Probeer op deze manier
try{
double d= Double.valueOf(someString);
if (d==(int)d){
System.out.println("integer"+(int)d);
}else{
System.out.println("double"+d);
}
}catch(Exception e){
System.out.println("not number");
}
Maar alle nummers buiten gehele getallen variëren (zoals “-1231231231231231238”) worden als tweepersoons behandeld. Als u van dat probleem kwijt wilt, kunt u het op deze manier proberen
try {
double d = Double.valueOf(someString);
if (someString.matches("\\-?\\d+")){//optional minus and at least one digit
System.out.println("integer" + d);
} else {
System.out.println("double" + d);
}
} catch (Exception e) {
System.out.println("not number");
}
Antwoord 6, Autoriteit 5%
Hier is de functie om te controleren of de reeks integer is of niet?
public static boolean isStringInteger(String number ){
try{
Integer.parseInt(number);
}catch(Exception e ){
return false;
}
return true;
}
Antwoord 7
Om te controleren of een tekenreeks een cijfer bevat dat een geheel getal voorstelt, kunt u Integer.parseInt()
gebruiken.
Om te controleren of een double een waarde bevat die een geheel getal kan zijn, kunt u Math.floor()
of Math.ceil()
gebruiken.
Antwoord 8
dit is de kortste manier die ik ken met negatieve gehele getallen ingeschakeld:
Object myObject = "-1";
if(Pattern.matches("\\-?\\d+", (CharSequence) myObject);)==true)
{
System.out.println("It's an integer!");
}
En dit is de manier met negatieve gehele getallen uitgeschakeld:
Object myObject = "1";
if(Pattern.matches("\\d+", (CharSequence) myObject);)==true)
{
System.out.println("It's an integer!");
}
Antwoord 9
Je moet eerst controleren of het een nummer is. Als dit het geval is, kunt u de methode Math.Round
gebruiken. Als het resultaat en de oorspronkelijke waarde gelijk zijn, is het een geheel getal.
Antwoord 10
Dit kan werken:
int no=0;
try
{
no=Integer.parseInt(string);
if(string.contains("."))
{
if(string.contains("f"))
{
System.out.println("float");
}
else
System.out.println("double");
}
}
catch(Exception ex)
{
Console.WriteLine("not numeric or string");
}
Antwoord 11
Probeer dit codefragment
private static boolean isStringInt(String s){
Scanner in=new Scanner(s);
return in.hasNextInt();
}
Antwoord 12
U kunt modulus % gebruiken, de oplossing is zo eenvoudig:
import java.text.DecimalFormat;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Enter first number");
Double m = scan.nextDouble();
System.out.println("Enter second number");
Double n= scan.nextDouble();
if(m%n==0)
{
System.out.println("Integer");
}
else
{
System.out.println("Double");
}
}
}