decimal2sexagesimal function

String decimal2sexagesimal(
  1. double dec
)

Converts a decimal value to a sexagesimal string (degrees, minutes, seconds).

Implementation

String decimal2sexagesimal(double dec) {
  final bool isNegative = dec < 0;
  dec = dec.abs();

  final int d = dec.floor();
  dec = (dec - d) * 60;
  final int m = dec.floor();
  dec = (dec - m) * 60;
  final double s = dec;

  final String sStr = NumberFormat("00.00").format(s);
  final String mStr = NumberFormat("00").format(m);
  final String dStr = NumberFormat("00").format(d);

  return "${isNegative ? "-" : ""}$dStr° $mStr' $sStr\"";
}