Skip to content

Commit 54d23f2

Browse files
authored
Add solution for Challenge 18 by hudazaan (#537)
1 parent a0034ba commit 54d23f2

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
"math"
6+
)
7+
8+
func main() {
9+
// Example usage
10+
celsius := 25.0
11+
fahrenheit := CelsiusToFahrenheit(celsius)
12+
fmt.Printf("%.2f°C is equal to %.2f°F\n", celsius, fahrenheit)
13+
14+
fahrenheit = 68.0
15+
celsius = FahrenheitToCelsius(fahrenheit)
16+
fmt.Printf("%.2f°F is equal to %.2f°C\n", fahrenheit, celsius)
17+
}
18+
19+
// CelsiusToFahrenheit converts a temperature from Celsius to Fahrenheit
20+
// Formula: F = C × 9/5 + 32
21+
func CelsiusToFahrenheit(celsius float64) float64 {
22+
fahrenheit := celsius*9/5 + 32
23+
return Round(fahrenheit, 2)
24+
}
25+
26+
// FahrenheitToCelsius converts a temperature from Fahrenheit to Celsius
27+
// Formula: C = (F - 32) × 5/9
28+
func FahrenheitToCelsius(fahrenheit float64) float64 {
29+
celsius := (fahrenheit - 32) * 5 / 9
30+
return Round(celsius, 2)
31+
}
32+
33+
// Round rounds a float64 value to the specified number of decimal places
34+
func Round(value float64, decimals int) float64 {
35+
precision := math.Pow10(decimals)
36+
return math.Round(value*precision) / precision
37+
}

0 commit comments

Comments
 (0)