Conversions
in package
Class Conversions
A comprehensive utility class providing static methods for converting between various units of measurement including weight, temperature, length, and fractions. This class supports common conversions for both imperial and metric systems, mathematical fraction operations, and specialized formatting functions.
Key features:
- Weight conversions (ounces, grams, pounds, kilograms)
- Temperature conversions (Celsius, Fahrenheit, Kelvin) with validation methods
- Length conversions (millimeters, inches, centimeters, feet, meters, yards)
- Comprehensive fraction operations (arithmetic, formatting, parsing)
- Mixed number handling and standard fraction approximations
All conversion factors use precise values from international standards. Fraction operations include GCD/LCM calculations for proper reduction.
Tags
Table of Contents
Methods
- addFractions() : string
- Adds two fractions and returns the result in reduced form.
- celsiusToFahrenheit() : float
- Converts Celsius to Fahrenheit.
- celsiusToKelvin() : float
- Converts Celsius to Kelvin.
- centimetersToInches() : float
- Converts centimeters to inches.
- convertTemperature() : float
- Converts temperature between any supported units using a unified interface.
- decimalToFraction() : string
- Converts a decimal number to its closest fraction representation.
- divideFractions() : string
- Divides the first fraction by the second and returns the result in reduced form.
- fahrenheitToCelsius() : float
- Converts Fahrenheit to Celsius.
- fahrenheitToKelvin() : float
- Converts Fahrenheit to Kelvin.
- feetToInches() : float
- Converts feet to inches.
- feetToMeters() : float
- Converts feet to meters.
- formatFraction() : string
- Formats a fraction string, converting improper fractions to whole numbers when appropriate.
- fractionToDecimal() : float
- Converts a fraction string to its decimal equivalent.
- fractionToMillimeters() : float
- Converts a fraction string to millimeters (assuming fraction represents inches).
- gramsToKilograms() : float
- Converts grams to kilograms.
- gramsToOunces() : float
- Converts grams to ounces.
- improperToMixed() : string
- Converts an improper fraction to a mixed number.
- inchesToCentimeters() : float
- Converts inches to centimeters.
- inchesToFeet() : float
- Converts inches to feet.
- inchesToMillimeters() : float
- Converts inches to millimeters.
- inchesToMMFraction() : string
- Converts inches to millimeters and returns as a fraction string.
- isBoilingPoint() : bool
- Checks if a temperature represents the boiling point of water.
- isFreezingPoint() : bool
- Checks if a temperature represents the freezing point of water.
- isValidFraction() : bool
- Validates whether a string represents a valid fraction format.
- kelvinToCelsius() : float
- Converts Kelvin to Celsius.
- kelvinToFahrenheit() : float
- Converts Kelvin to Fahrenheit.
- kilogramsToGrams() : float
- Converts kilograms to grams.
- kilogramsToPounds() : float
- Converts kilograms to pounds.
- metersToFeet() : float
- Converts meters to feet.
- metersToYards() : float
- Converts meters to yards.
- millimetersToClosestFraction() : string
- Converts millimeters to inches and returns as closest fraction string.
- millimetersToInches() : float
- Converts millimeters to inches.
- mixedToImproper() : string
- Converts a mixed number to an improper fraction.
- multiplyFractions() : string
- Multiplies two fractions and returns the result in reduced form.
- nearestStandardFraction() : string
- Finds the closest standard fraction to a given decimal value.
- ouncesToGrams() : float
- Converts ounces to grams.
- ouncesToPounds() : float
- Converts ounces to pounds.
- parseMixedFraction() : float
- Parses mixed fraction input and converts to decimal.
- poundsToKilograms() : float
- Converts pounds to kilograms.
- poundsToOunces() : float
- Converts pounds to ounces.
- reduceFraction() : string
- Reduces a fraction to its lowest terms using GCD.
- roundToNearestMillimeter() : float
- Converts inches to millimeters and rounds to the nearest whole millimeter.
- subtractFractions() : string
- Subtracts the second fraction from the first and returns the result in reduced form.
- yardsToMeters() : float
- Converts yards to meters.
- gcd() : int
- Calculates the Greatest Common Divisor of two integers using Euclidean algorithm.
- lcm() : int
- Calculates the Least Common Multiple of two integers.
Methods
addFractions()
Adds two fractions and returns the result in reduced form.
public
static addFractions(string $f1, string $f2) : string
Parameters
- $f1 : string
-
First fraction in "numerator/denominator" format
- $f2 : string
-
Second fraction in "numerator/denominator" format
Return values
string —Sum as a reduced fraction string
celsiusToFahrenheit()
Converts Celsius to Fahrenheit.
public
static celsiusToFahrenheit(float $c) : float
Uses the formula: F = (C × 9/5) + 32
Parameters
- $c : float
-
Temperature in Celsius
Return values
float —Temperature in Fahrenheit
celsiusToKelvin()
Converts Celsius to Kelvin.
public
static celsiusToKelvin(float $c) : float
Uses the formula: K = C + 273.15
Parameters
- $c : float
-
Temperature in Celsius
Return values
float —Temperature in Kelvin
centimetersToInches()
Converts centimeters to inches.
public
static centimetersToInches(float $cm) : float
Uses the international definition: 1 inch = 2.54 centimeters exactly
Parameters
- $cm : float
-
Length in centimeters
Return values
float —Length in inches
convertTemperature()
Converts temperature between any supported units using a unified interface.
public
static convertTemperature(float $value, string $from, string $to) : float
Supports conversions between Celsius (c), Fahrenheit (f), and Kelvin (k). Case-insensitive unit specifications.
Parameters
- $value : float
-
Temperature value to convert
- $from : string
-
Source unit ('c', 'f', or 'k')
- $to : string
-
Target unit ('c', 'f', or 'k')
Tags
Return values
float —Converted temperature value
decimalToFraction()
Converts a decimal number to its closest fraction representation.
public
static decimalToFraction(float $decimal[, int $precision = 16 ]) : string
Uses an iterative algorithm to find the fraction with the smallest error within the specified precision (maximum denominator). Handles mixed numbers by separating whole and fractional parts.
Parameters
- $decimal : float
-
Decimal number to convert
- $precision : int = 16
-
Maximum denominator to consider (default: 16)
Return values
string —Fraction string, potentially including whole number part
divideFractions()
Divides the first fraction by the second and returns the result in reduced form.
public
static divideFractions(string $f1, string $f2) : string
Parameters
- $f1 : string
-
Dividend fraction in "numerator/denominator" format
- $f2 : string
-
Divisor fraction in "numerator/denominator" format
Return values
string —Quotient as a reduced fraction string
fahrenheitToCelsius()
Converts Fahrenheit to Celsius.
public
static fahrenheitToCelsius(float $f) : float
Uses the formula: C = (F - 32) × 5/9
Parameters
- $f : float
-
Temperature in Fahrenheit
Return values
float —Temperature in Celsius
fahrenheitToKelvin()
Converts Fahrenheit to Kelvin.
public
static fahrenheitToKelvin(float $f) : float
Combines Fahrenheit to Celsius conversion with Celsius to Kelvin
Parameters
- $f : float
-
Temperature in Fahrenheit
Return values
float —Temperature in Kelvin
feetToInches()
Converts feet to inches.
public
static feetToInches(float $ft) : float
Uses the standard definition: 1 foot = 12 inches
Parameters
- $ft : float
-
Length in feet
Return values
float —Length in inches
feetToMeters()
Converts feet to meters.
public
static feetToMeters(float $ft) : float
Uses the international foot definition: 1 foot = 0.3048 meters exactly
Parameters
- $ft : float
-
Length in feet
Return values
float —Length in meters
formatFraction()
Formats a fraction string, converting improper fractions to whole numbers when appropriate.
public
static formatFraction(string $fraction) : string
If the numerator is evenly divisible by the denominator, returns the whole number. Otherwise, returns the fraction in reduced form.
Parameters
- $fraction : string
-
Fraction in "numerator/denominator" format
Return values
string —Formatted fraction or whole number string
fractionToDecimal()
Converts a fraction string to its decimal equivalent.
public
static fractionToDecimal(string $fraction) : float
Handles both simple fractions (e.g., "3/4") and whole numbers. Uses array_reduce for elegant division chain handling.
Parameters
- $fraction : string
-
Fraction in format "numerator/denominator" or whole number
Return values
float —Decimal equivalent of the fraction
fractionToMillimeters()
Converts a fraction string to millimeters (assuming fraction represents inches).
public
static fractionToMillimeters(string $fraction) : float
Parameters
- $fraction : string
-
Fraction representing inches
Return values
float —Length in millimeters, rounded to 2 decimal places
gramsToKilograms()
Converts grams to kilograms.
public
static gramsToKilograms(float $g) : float
Uses metric system definition: 1 kilogram = 1000 grams
Parameters
- $g : float
-
Weight in grams
Return values
float —Weight in kilograms
gramsToOunces()
Converts grams to ounces.
public
static gramsToOunces(float $grams) : float
Uses the standard conversion factor: 1 gram = 1/28.3495 ounces
Parameters
- $grams : float
-
Weight in grams
Return values
float —Weight in ounces
improperToMixed()
Converts an improper fraction to a mixed number.
public
static improperToMixed(string $improper) : string
Parameters
- $improper : string
-
Improper fraction in "numerator/denominator" format
Return values
string —Mixed number string or whole number if no remainder
inchesToCentimeters()
Converts inches to centimeters.
public
static inchesToCentimeters(float $in) : float
Uses the international definition: 1 inch = 2.54 centimeters exactly
Parameters
- $in : float
-
Length in inches
Return values
float —Length in centimeters
inchesToFeet()
Converts inches to feet.
public
static inchesToFeet(float $in) : float
Uses the standard definition: 1 foot = 12 inches
Parameters
- $in : float
-
Length in inches
Return values
float —Length in feet
inchesToMillimeters()
Converts inches to millimeters.
public
static inchesToMillimeters(float $in) : float
Uses the international definition: 1 inch = 25.4 millimeters exactly
Parameters
- $in : float
-
Length in inches
Return values
float —Length in millimeters
inchesToMMFraction()
Converts inches to millimeters and returns as a fraction string.
public
static inchesToMMFraction(float $inches[, int $precision = 16 ]) : string
Parameters
- $inches : float
-
Length in inches
- $precision : int = 16
-
Maximum denominator for fraction approximation (default: 16)
Return values
string —Millimeter measurement as a fraction string
isBoilingPoint()
Checks if a temperature represents the boiling point of water.
public
static isBoilingPoint(float $temp, string $unit) : bool
Uses a tolerance of 0.01 degrees to account for floating-point precision. Reference points: 100°C, 212°F, 373.15K
Parameters
- $temp : float
-
Temperature value to check
- $unit : string
-
Temperature unit ('c', 'f', or 'k')
Return values
bool —True if temperature is at boiling point
isFreezingPoint()
Checks if a temperature represents the freezing point of water.
public
static isFreezingPoint(float $temp, string $unit) : bool
Uses a tolerance of 0.01 degrees to account for floating-point precision. Reference points: 0°C, 32°F, 273.15K
Parameters
- $temp : float
-
Temperature value to check
- $unit : string
-
Temperature unit ('c', 'f', or 'k')
Return values
bool —True if temperature is at freezing point
isValidFraction()
Validates whether a string represents a valid fraction format.
public
static isValidFraction(string $input) : bool
Checks for proper fraction format with optional negative sign. Pattern: optional minus, digits, slash, digits
Parameters
- $input : string
-
String to validate as fraction
Return values
bool —True if input matches valid fraction pattern
kelvinToCelsius()
Converts Kelvin to Celsius.
public
static kelvinToCelsius(float $k) : float
Uses the formula: C = K - 273.15
Parameters
- $k : float
-
Temperature in Kelvin
Return values
float —Temperature in Celsius
kelvinToFahrenheit()
Converts Kelvin to Fahrenheit.
public
static kelvinToFahrenheit(float $k) : float
Combines Kelvin to Celsius conversion with Celsius to Fahrenheit
Parameters
- $k : float
-
Temperature in Kelvin
Return values
float —Temperature in Fahrenheit
kilogramsToGrams()
Converts kilograms to grams.
public
static kilogramsToGrams(float $kg) : float
Uses metric system definition: 1 kilogram = 1000 grams
Parameters
- $kg : float
-
Weight in kilograms
Return values
float —Weight in grams
kilogramsToPounds()
Converts kilograms to pounds.
public
static kilogramsToPounds(float $kg) : float
Uses the international avoirdupois pound definition: 1 kilogram = 1/0.45359237 pounds
Parameters
- $kg : float
-
Weight in kilograms
Return values
float —Weight in pounds
metersToFeet()
Converts meters to feet.
public
static metersToFeet(float $m) : float
Uses the international foot definition: 1 foot = 0.3048 meters exactly
Parameters
- $m : float
-
Length in meters
Return values
float —Length in feet
metersToYards()
Converts meters to yards.
public
static metersToYards(float $m) : float
Uses the international yard definition: 1 yard = 0.9144 meters exactly
Parameters
- $m : float
-
Length in meters
Return values
float —Length in yards
millimetersToClosestFraction()
Converts millimeters to inches and returns as closest fraction string.
public
static millimetersToClosestFraction(float $mm[, int $precision = 16 ]) : string
Parameters
- $mm : float
-
Length in millimeters
- $precision : int = 16
-
Maximum denominator for fraction approximation (default: 16)
Return values
string —Inch measurement as a fraction string
millimetersToInches()
Converts millimeters to inches.
public
static millimetersToInches(float $mm) : float
Uses the international definition: 1 inch = 25.4 millimeters exactly
Parameters
- $mm : float
-
Length in millimeters
Return values
float —Length in inches
mixedToImproper()
Converts a mixed number to an improper fraction.
public
static mixedToImproper(string $mixed) : string
Handles strings in format "whole fraction" (e.g., "2 3/4") and converts to improper fraction format (e.g., "11/4").
Parameters
- $mixed : string
-
Mixed number in "whole numerator/denominator" format
Return values
string —Improper fraction string
multiplyFractions()
Multiplies two fractions and returns the result in reduced form.
public
static multiplyFractions(string $f1, string $f2) : string
Parameters
- $f1 : string
-
First fraction in "numerator/denominator" format
- $f2 : string
-
Second fraction in "numerator/denominator" format
Return values
string —Product as a reduced fraction string
nearestStandardFraction()
Finds the closest standard fraction to a given decimal value.
public
static nearestStandardFraction(float $decimal[, array<string|int, mixed> $options = ['1/2', '1/4', '1/8', '1/16'] ]) : string
Compares the decimal against a list of common fractions and returns the one with the smallest absolute difference.
Parameters
- $decimal : float
-
Decimal value to approximate
- $options : array<string|int, mixed> = ['1/2', '1/4', '1/8', '1/16']
-
Array of fraction strings to choose from
Return values
string —Closest matching fraction from the options
ouncesToGrams()
Converts ounces to grams.
public
static ouncesToGrams(float $oz) : float
Uses the standard conversion factor: 1 ounce = 28.3495 grams
Parameters
- $oz : float
-
Weight in ounces
Return values
float —Weight in grams
ouncesToPounds()
Converts ounces to pounds.
public
static ouncesToPounds(float $oz) : float
Uses the standard definition: 1 pound = 16 ounces
Parameters
- $oz : float
-
Weight in ounces
Return values
float —Weight in pounds
parseMixedFraction()
Parses mixed fraction input and converts to decimal.
public
static parseMixedFraction(string $input) : float
Handles both mixed fractions ("2 3/4") and simple fractions ("3/4"). Uses regex to identify mixed fraction pattern and calculate accordingly.
Parameters
- $input : string
-
Mixed fraction or simple fraction string
Return values
float —Decimal equivalent
poundsToKilograms()
Converts pounds to kilograms.
public
static poundsToKilograms(float $lbs) : float
Uses the international avoirdupois pound definition: 1 pound = 0.45359237 kilograms
Parameters
- $lbs : float
-
Weight in pounds
Return values
float —Weight in kilograms
poundsToOunces()
Converts pounds to ounces.
public
static poundsToOunces(float $lbs) : float
Uses the standard definition: 1 pound = 16 ounces
Parameters
- $lbs : float
-
Weight in pounds
Return values
float —Weight in ounces
reduceFraction()
Reduces a fraction to its lowest terms using GCD.
public
static reduceFraction(string $fraction) : string
Parameters
- $fraction : string
-
Fraction in "numerator/denominator" format
Return values
string —Reduced fraction string
roundToNearestMillimeter()
Converts inches to millimeters and rounds to the nearest whole millimeter.
public
static roundToNearestMillimeter(float $inches) : float
Useful for practical measurements where sub-millimeter precision is not needed.
Parameters
- $inches : float
-
Length in inches
Return values
float —Length in millimeters, rounded to nearest whole number
subtractFractions()
Subtracts the second fraction from the first and returns the result in reduced form.
public
static subtractFractions(string $f1, string $f2) : string
Parameters
- $f1 : string
-
First fraction (minuend) in "numerator/denominator" format
- $f2 : string
-
Second fraction (subtrahend) in "numerator/denominator" format
Return values
string —Difference as a reduced fraction string
yardsToMeters()
Converts yards to meters.
public
static yardsToMeters(float $yd) : float
Uses the international yard definition: 1 yard = 0.9144 meters exactly
Parameters
- $yd : float
-
Length in yards
Return values
float —Length in meters
gcd()
Calculates the Greatest Common Divisor of two integers using Euclidean algorithm.
protected
static gcd(int $a, int $b) : int
Recursive implementation that handles negative numbers by taking absolute values.
Parameters
- $a : int
-
First integer
- $b : int
-
Second integer
Return values
int —Greatest common divisor
lcm()
Calculates the Least Common Multiple of two integers.
protected
static lcm(int $a, int $b) : int
Uses the relationship: LCM(a,b) = |a*b| / GCD(a,b)
Parameters
- $a : int
-
First integer
- $b : int
-
Second integer
Return values
int —Least common multiple