我现在想把一个度数转化成度分秒的形式,举例说:
已知x=20.67°,怎么编程实现x=20°40'12"。就是一个形式的转化。
请高手指点一下!

解决方案 »

  1.   

    很简单, 表达得可能不太明确
    就是说用 时间刻度 表达角度计算为 
    0.67 * 60 = 40.2 整数部分就是 分
    0.2 * 60 = 12 整数部分就是 秒程序做成
    2.67 * 60 mod 60 就是 分
    2.67 * 60 * 60 mod 60 就是 秒
      

  2.   

    谢谢2楼的解答!
    我知道怎么用手工换算,可能我没有说清楚,其意思是这样的:
    一个Edit1用于让使用者输入一个度数,是十进制的,比如Edit1.Text:=20.67°;
    一个Button1,点击一下后把输入的Edit1.Text转化为度分秒的形式,然后在Edit2中显示出来。
    请给出一个代码!
    谢谢!
      

  3.   

    不要让用户录入那个 °嘛, 录入 20.67
    StrToFloat(Edit1.Text); 就方便多了
      

  4.   

    谢谢4楼的解释。可以不用让用户输入°,但是Edit1.text显示的内容是20.67,但是还是度数的。
    关键是怎么把度数转化为度分秒的形式显示出来?
    可以自定义一个函数实现吗?怎么写这个函数那?
      

  5.   


    procedure TForm1.Button1Click(Sender: TObject);
    var
      f:single;
      h,m,s: integer;
    begin
      f:=strtofloat(trim(edit1.Text));
      h:=round(int(f));
      m:=round(int((Frac(f)*60)));
      s:=round(frac(frac(f)*60)*60);
      edit2.Text:=inttostr(h)+'度'+inttostr(m)+'分'+inttostr(s)+'秒';
    end;
      

  6.   

    非常感谢yuqianyi1974,这个问题结贴了!