Java copySign Function

The Java copySign Function is one of the Math Library functions used to find the absolute value of the first argument. This Java copysign function returns the absolute value along with the sign specified in the second argument.

Java copySign Function syntax

The basic syntax of the Math.copySign Function in Java Programming language is as shown below:

Math.copySign(data_type magnitude, data_type sign);
  • magnitude: Please specify the magnitude value here. The Function will find the absolute value of this argument. If you find it challenging to understand the absolute values, please refer Java abs Method article.
  • sign: Please specify the Sign value here. This function uses this argument sign (Positive or Negative) and returns the output.

For example, if magnitude = 10.45 and sign = – 5.40, then Java Math.copySign(10.45, -5.40) = -10.45. It is because the absolute value of 10.45 is 10.45, and the second argument sign is Negative. So, the output is -10.45

Java Programming provides two different Math.copySign functions to find the Maximum or Largest value from the given two arguments. The following copySign function will accept positive or negative double values as the first and second arguments and returns the first floating value along with the sign specified in the second argument.

static double copySign(double magnitude,  double sign); //Return Type is double

// In order to use in program: 
Math.copySign(double magnitude,  double sign);

It accepts positive or negative float values and returns the first floating value along with the sign specified in the second.

static float copySign(float magnitude,  float sign); //Return Type is float

// In order to use in program: 
Math.copySign(float magnitude,  float sign);

Java copySign Function Example

In this Java example, We use math.copySign function to find the absolute values of different data types and display the output along with sign.

package MathFunctions;

public class CopySign {
	public static void main(String[] args) {
		double b = 10.9666, c = 14.6674, d = -9.474, e = -14.9865;
		float g = 1.23f, h = 4.809f, i = -7.89f, j = -6.54f;
		
		System.out.println("CopySign result of Positive Values: " + Math.copySign(10, 20));
		System.out.println("CopySign result of Negative Values: " + Math.copySign(-10, -20));
		System.out.println("CopySign result of both Positive & Negative Values: " + Math.copySign(10, -20));
		System.out.println("CopySign result of both Positive & Negative Values: " + Math.copySign(-5, 10));
		
		System.out.println("\nCopySign result of Positive Doubles: " + Math.copySign(b, c));
		System.out.println("CopySign result of Negative Double Values: " + Math.copySign(d, e));
		System.out.println("CopySign result of both Positive & Negative Double Values: " + Math.copySign(c, d));
		System.out.println("CopySign result of both Positive & Negative Double Values: " + Math.copySign(e, b));
		
		System.out.println("\nCopySign result of Positive Float Values: " + Math.copySign(g, h));
		System.out.println("CopySign result of Negative Float Values: " + Math.copySign(i, j));
		System.out.println("CopySign result of both Positive & Negative Float Values: " + Math.copySign(h, i));
		System.out.println("CopySign result of both Positive & Negative Float Values: " + Math.copySign(j, h));
	}
}
Java copySign Function 1

We used the Math.copySign Function directly on both Positive and negative values.

System.out.println("CopySign result of Positive Values: " + Math.copySign(10, 20));
System.out.println("CopySign result of Negative Values: " + Math.copySign(-10, -20));
System.out.println("CopySign result of both Positive & Negative Values: " + Math.copySign(10, -20));
System.out.println("CopySign result of both Positive & Negative Values: " + Math.copySign(-5, 10));

Next, We used the Java Function on variables b, c, d, and e (they belong to double type). The following statements will call the method of double type ( static double copySign(double magnitude, double sign) ) to display the result.

System.out.println("\nCopySign result of Positive Doubles: " + Math.copySign(b, c));
System.out.println("CopySign result of Negative Double Values: " + Math.copySign(d, e));
System.out.println("CopySign result of both Positive & Negative Double Values: " + Math.copySign(c, d));
System.out.println("CopySign result of both Positive & Negative Double Values: " + Math.copySign(e, b));

Next, We used the Math function on variables g, h, i, and j (they belong to float type). The following statements call the method of float type ( static float copySign(float magnitude, float sign) ) to display the result.

System.out.println("\nCopySign result of Positive Float Values: " + Math.copySign(g, h));
System.out.println("CopySign result of Negative Float Values: " + Math.copySign(i, j));
System.out.println("CopySign result of both Positive & Negative Float Values: " + Math.copySign(h, i));
System.out.println("CopySign result of both Positive & Negative Float Values: " + Math.copySign(j, h));