0.1 float is greater than 0.1 double. I expected it to be false [duplicate]

I’d say the answer depends on the rounding mode when converting the double to float. float has 24 binary bits of precision, and double has 53. In binary, 0.1 is: 0.1₁₀ = 0.0001100110011001100110011001100110011001100110011…₂ ^ ^ ^ ^ 1 10 20 24 So if we round up at the 24th digit, we’ll get 0.1₁₀ ~ 0.000110011001100110011001101 … Read more

Do any JVM’s JIT compilers generate code that uses vectorized floating point instructions?

So, basically, you want your code to run faster. JNI is the answer. I know you said it didn’t work for you, but let me show you that you are wrong. Here’s Dot.java: import java.nio.FloatBuffer; import org.bytedeco.javacpp.*; import org.bytedeco.javacpp.annotation.*; @Platform(include = “Dot.h”, compiler = “fastfpu”) public class Dot { static { Loader.load(); } static float[] … Read more

How many double numbers are there between 0.0 and 1.0?

Java doubles are in IEEE-754 format, therefore they have a 52-bit fraction; between any two adjacent powers of two (inclusive of one and exclusive of the next one), there will therefore be 2 to the 52th power different doubles (i.e., 4503599627370496 of them). For example, that’s the number of distinct doubles between 0.5 included and … Read more

Double to string conversion without scientific notation

For a general-purpose¹ solution you need to preserve 339 places: doubleValue.ToString(“0.” + new string(‘#’, 339)) The maximum number of non-zero decimal digits is 16. 15 are on the right side of the decimal point. The exponent can move those 15 digits a maximum of 324 places to the right. (See the range and precision.) It … Read more