How to make the division of 2 ints produce a float instead of another int?
Just cast one of the two operands to a float first.
v = (float)s / t;
The cast has higher precedence than the division, so happens before the division.
The other operand will be effectively automatically cast to a float by the compiler because the rules say that if either operand is of floating point type then the operation will be a floating point operation, even if the other operand is integral. Java Language Specification, §4.2.4 and §15.17
Why dividing two integers doesn't get a float?
This is because of implicit conversion. The variables b, c, d
are of float
type. But the /
operator sees two integers it has to divide and hence returns an integer in the result which gets implicitly converted to a float
by the addition of a decimal point. If you want float divisions, try making the two operands to the /
floats. Like follows.
#include <stdio.h>
int main() {
int a;
float b, c, d;
a = 750;
b = a / 350.0f;
c = 750;
d = c / 350;
printf("%.2f %.2f", b, d);
// output: 2.14 2.14
return 0;
}
Dividing two integers to produce a float result
Cast the operands to floats:
float ans = (float)a / (float)b;
Integer division: How do you produce a double?
double num = 5;
That avoids a cast. But you'll find that the cast conversions are well-defined. You don't have to guess, just check the JLS. int to double is a widening conversion. From §5.1.2:
Widening primitive conversions do not
lose information about the overall
magnitude of a numeric value.[...]
Conversion of an int or a long value
to float, or of a long value to
double, may result in loss of
precision-that is, the result may lose
some of the least significant bits of
the value. In this case, the resulting
floating-point value will be a
correctly rounded version of the
integer value, using IEEE 754
round-to-nearest mode (§4.2.4).
5 can be expressed exactly as a double.
integer division to float result
When you divide two int
s you perform integer division, which, in this case will result in 22/64 = 0. Only once this is done are you creating a float
. And the float
representation of 0
is 0.0
. If you want to perform floating point division, you should cast before dividing:
ws = ((float) zahl1) / i;
Why does integer division yield a float instead of another integer?
Take a look at PEP-238: Changing the Division Operator
The // operator will be available to request floor division unambiguously.
How can I force division to be floating point? Division keeps rounding down to 0?
In Python 2, division of two ints produces an int. In Python 3, it produces a float. We can get the new behaviour by importing from __future__
.
>>> from __future__ import division
>>> a = 4
>>> b = 6
>>> c = a / b
>>> c
0.66666666666666663
How to get a float result by dividing two integer values using T-SQL?
The suggestions from stb and xiowl are fine if you're looking for a constant. If you need to use existing fields or parameters which are integers, you can cast them to be floats first:
SELECT CAST(1 AS float) / CAST(3 AS float)
or
SELECT CAST(MyIntField1 AS float) / CAST(MyIntField2 AS float)
Why does float divided by an integer return a float
Because of C's Usual arithmetic conversions
.
Quoting the ANSI C standard § 3.2.1.5 Usual arithmetic conversions:
Many binary operators that expect operands of arithmetic type cause conversions and yield result types in a similar way. The purpose is to yield a common type, which is also the type of the result. This pattern is called the usual arithmetic conversions: First, if either operand has type long double, the other operand is converted to long double . [...] Otherwise, if either operand has type float, the other operand is converted to float.
Emphasis mine.
Related Topics
Why Does Runtime.Exec(String) Work for Some But Not All Commands
Why Is Creating a Thread Said to Be Expensive
How Does the String Class Override the + Operator
How to Check If the User Is Pressing a Key
Intellij Inspection Gives "Cannot Resolve Symbol" But Still Compiles Code
Jsoup Java HTML Parser:Executing JavaScript Events
Jasper Reports PDF Doesn't Export Cyrillic Values
Java.Rmi.Serverexception: Remoteexception Occurred in Server Thread (Classnotfoundexception)
Eclipse Can't Find Xml Related Classes After Switching Build Path to Jdk 10
How to Write a Custom JSON Deserializer for Gson
Why Can Outer Java Classes Access Inner Class Private Members
The Best Way to Print a Java 2D Array
Java and Gui - Where Do Actionlisteners Belong According to MVC Pattern
Use Mockito to Mock Some Methods But Not Others