Ik kan het antwoord niet vinden dat ik op zoek ben naar een simpele vraag: hoe rom ik elk nummer op naar de dichtstbijzijnde int
?
Bijvoorbeeld, telkens wanneer het nummer 0,2, 0.7, 0.2222, 0.4324, 0.99999, zou ik willen dat de uitkomst 1 is.
Tot nu toe heb ik
int b = (int) Math.ceil(a / 100);
Het lijkt echter niet het werk te doen.
Antwoord 1, Autoriteit 100%
Math.ceil()
is de juiste functie om te bellen. Ik vermoedend a
is een int
, die a / 100
zou maken>geheel getal rekenkundig uitvoeren. Probeer Math.ceil(a / 100.0)
in plaats daarvan.
int a = 142;
System.out.println(a / 100);
System.out.println(Math.ceil(a / 100));
System.out.println(a / 100.0);
System.out.println(Math.ceil(a / 100.0));
System.out.println((int) Math.ceil(a / 100.0));
Uitgangen:
1
1.0
1.42
2.0
2
Antwoord 2, Autoriteit 6%
Ik weet niet waarom je met 100 scheidt, maar hier mijn veronderstelling int a;
int b = (int) Math.ceil( ((double)a) / 100);
of
int b = (int) Math.ceil( a / 100.0);
Antwoord 3, Autoriteit 4%
int RoundedUp = (int) Math.ceil(RandomReal);
Dit leek de perfecte baan te doen. Gewerkt elke keer.
Antwoord 4, Autoriteit 2%
10 jaar later, maar dat probleem heeft me nog steeds betrapt.
Dus dit is het antwoord op degenen die te laat zijn als ik.
Dit werkt niet
int b = (int) Math.ceil(a / 100);
Oorzaak Het resultaat a / 100
blijkt een geheel getal te zijn en het is afgerond, dus wiskunde
kan er niets aan doen.
U moet de afgeronde werking met deze
vermijden
int b = (int) Math.ceil((float) a / 100);
Nu werkt het.
Antwoord 5
De eenvoudigste manier om dit te doen is alleen:
U ontvangt een float of een dubbele en wilt u deze naar het dichtstbijzijnde ronde omzetten, dan doen het gewoon System.out.println((int)Math.ceil(yourfloat));
het zal perfect werken
Antwoord 6
Aangenomen van een als dubbele en we hebben een afgerond nummer nodig met geen decimale plaats. Gebruik Math.Round () -functie.
Dit geldt als mijn oplossing.
double a = 0.99999;
int rounded_a = (int)Math.round(a);
System.out.println("a:"+rounded_a );
Output :
a:1