25 lines
444 B
Go
25 lines
444 B
Go
package tools
|
||
|
||
import (
|
||
"fmt"
|
||
"math"
|
||
)
|
||
|
||
func Format(val float64, typed uint8) string {
|
||
belowZero := false
|
||
if val < 0 {
|
||
belowZero = true
|
||
val = -val
|
||
}
|
||
degree := math.Floor(val)
|
||
min := math.Floor((val - degree) * 60)
|
||
sec := (val - degree - min/60) * 3600
|
||
if belowZero {
|
||
degree = -degree
|
||
}
|
||
if typed == 0 {
|
||
return fmt.Sprintf("%.0f°%.0f′%.2f″", degree, min, sec)
|
||
}
|
||
return fmt.Sprintf("%.0fh%.0fm%.2fs", degree, min, sec)
|
||
}
|