How can I convert float to integer in Java [duplicate] - java

This question already has answers here:
How to convert float to int with Java
(9 answers)
Closed 7 years ago.
I need to convert a float number into an integer.
Can Java automatically convert float number into integers? If so, do normal rounding rules apply (e.g. 3.4 gets converted to 3, but 3.6 gets converted to 4)?

You have in Math library function round(float a) it's round the float to the nearest whole number.
int val = Math.round(3.6); \\ val = 4
int val2 = Math.round(3.4); \\ val2 = 3

It is a bit dirty but it works:
double a=3.6;
int b = (int) (a + 0.5);
See the result here

Math.round(3.6) would do that for you.

Related

how to set a variable to 0.001 in JAVA (android) [duplicate]

This question already has answers here:
Int division: Why is the result of 1/3 == 0?
(19 answers)
Closed 3 years ago.
when i want to get the result of 100/100000..
i got only 0.
Example
int one = 100;
int two = 100000;
int result = one/two;
toast(result); //Result is 0
Hey there "int" data type only stores integer values and not the decimals.
So if you divide 3 with 2 you would get 1 as answer instead of 1.5 .
Int just ignores the decimals .
You need to choose float or double data type for this to work.
Your variable named result must be declared and casted to float data type.
Appreciate the effort and mark this as answer if it helps you.....

Are mathematical operations different for different data types? [duplicate]

This question already has answers here:
Integer division: How do you produce a double?
(11 answers)
Division of integers in Java [duplicate]
(7 answers)
Closed 5 years ago.
Why is it that in the first line sevenTwelfths will evaluate to the expected answer (0.5833), but threeTwentySixths will evaluate to zero? I assumed that since the data type is a double, the operation of dividing 3 by 26 would be a decimal, but it appears as if it does the operation as an integer operation and then coverts that answer to a double and stores it in threeTwentySixths.
double sevenTwelfths = ((double) 7 / 12);
double threeTwentySixths = 3 / 26;
double sevenTwelfths = ((double) 7 / 12);
In First line this called typecasting meaning you are converting your answer in double for example
int sevenTwelfths=((int)7/12));
this mean after dividing 7/12 whatever is the anser convert into int or Type cast into int

Round up when multiplying an integer by 0.5 [duplicate]

This question already has answers here:
Always Round UP a Double
(8 answers)
Closed 7 years ago.
Is there a way to automatically round up a value in java?
For example:
//generate a random integer value
int randomVal = RandomHelper.nextIntFromTo(1, otherVal);
/* then divide the integer value in half... the error I am getting is that its a double, probably
because the number generated isn't an even number, but I NEED it to be an integer. Can I round up?*/
int value = randomVal * 0.5;
You can add 1 then divide by 2 instead of multiplying by 0.5. That way, you avoid a floating point operation followed by a conversion to int.
int value = (randomVal + 1) / 2;
Use Math.ceil():
int value = (int)Math.ceil(randomVal * 0.5);

how to eliminate any number after the floating point? [duplicate]

This question already has answers here:
How to cast a double to an int in Java by rounding it down?
(9 answers)
Closed 8 years ago.
Is there any function returns only the real number without the floating point? For an example,
func(1.xxx)->1
func(52.xx)->52
func(0.xx)->0
Is there any function does so?
Simply casting to int would truncate everything past the decimal point.
float f1 = 10.345;
int i1 = (int) f1; // Gives 10
float f2 = 10.897;
int i2 = (int) f2; // Also gives 10
You can do :
double d = 100.675;
System.out.println((int) d);
this gives you 100.
System.out.println(Math.round(d));
gives you 101.
You can also use :
new java.text.DecimalFormat("#").format(10.0); // => "10"
now the choice is yours that how you want to do and main thing depend on that what is your expected output is.

Why does java return a 0? [duplicate]

This question already has answers here:
Why does the division of two integers return 0.0 in Java? [duplicate]
(6 answers)
Double value returns 0 [duplicate]
(3 answers)
Closed 9 years ago.
Why does Java return a 0 when I divide 10/60?
the code I tried is
double pay_per_minute = (10/60);
10 being the pay rate per hour and 60 being the minutes.
Because you're building an integer. When you store it in a double variable, it's already too late : it's 0.
Do
double pay_per_minute = (10.0/60);
If you have variables, cast them :
double pay_per_minute = ((double)pay_per_hour) / 60;
any primitive digit in java is treated as an integer, so when you do 10/60, it is integer division and due to precision loss it is giving 0
Here 10 and 60 takes as int values and then you get int dividing result it is 0 then you get answer as 0. use following way.
double a=10;
double b=60;
double div=a/b;
you need to type cast it first because by default numericals are considered as integers
double pay_per_minute = ((double)10/60);
System.out.println(pay_per_minute);
output 0.16666666666666666
double pay_per_minute = (10/60);
Here, you are dividing integer 10 by integer 60. So, this is like doing
int temp = 10/60;
double pay_per_minute = double(temp)
your temp will be 0 (since 10/60 is 0 when considered as integer division)
You need to do,
double pay_per_minute = (10.0/60);

Categories

Resources