# Brand new to Java and programming

• August 26th, 2011, 05:18 PM
mwr76
Brand new to Java and programming
As part of my homework, actually this part is for extra credit. I am supposed to write a program that prompts the user to input a decimal number and outputs the number to the nearest integer. Using only things I have learned to this point. I couldn't figure it out. I read ahead in the book about if else statements and came up with the following, but is there a way to do it with out if, else statements?(I am only 1 week into this class, so I can't use anything like the Math round method. I am supposed to do this programmatically):

Code :

```//Chapter 2 programming exercises 6.)   import java.util.*;   public class Ch2_PrExercises6 { public static void main(String[] args) { Scanner tv = new Scanner(System.in);   int numResult = 0; double numEntered;   System.out.println("Enter in a decimal number to be rounded to the nearest whole number, then press Enter: "); System.out.println();   numEntered = tv.nextDouble();   if(numEntered % 1 >= (1/2)) { numResult = (int)(numEntered) + 1; }   else { numResult = (int)(numEntered); }   System.out.println("You number rounded to the nearest whole number = " + numResult);   } }```

• August 26th, 2011, 05:43 PM
newbie
Re: Brand new to Java and programming
Quote:

I can't use anything like the Math round method
Odd you can't use Math.round() :p
If you want your current method to work, replace (1/2) with 0.5;

Edit: Rewrote post
• August 26th, 2011, 07:42 PM
Norm
Re: Brand new to Java and programming
replace (1/2) with 0.5 because 1/2 will be computed using integer arithmetic and gives a result of 0
• August 26th, 2011, 08:41 PM
Sean4u
Re: Brand new to Java and programming
Quote:

is there a way to do it with out if, else statements?
Yes, you can do it with a little bit of arithmetic and the fact that floating->int conversion discards the fractional part. Think of simple arithmetic that converts .5 and greater fractional parts to 1.0 or greater, but not to 2.0!