program Project2_12;
{$APPTYPE CONSOLE}
uses Sysutils;             
function ShowNum(Num:Double;Precision:Integer = 4):Boolean;  (*  Precision:Integer = 4 这里是怎么回事?赋值?赋值应该是:=啊,还有,给形参赋值,这是个啥意思? *)
  var  MesStr : string;    
  begin
    if Precision <= -1 then 
       begin
         result := false ;   (*  平白无故地钻出来个result,这又是怎么回事? *)
         exit;     (* 这个也是这样,平白无故地钻出来个exit,这又是怎么回事?*)       
       end
    else
       begin                
         MesStr := Format('%*.*f', [10, Precision, Num]);  (*  我知道这是个Format函数,网上也有一大堆Format介绍,但我想知道这里的每个参数的准确意思,如,%  *   .   *    f       10   Precision    Num      *)
         result := true ;
       end ;
    Writeln(MesStr);        
  end ;
begin                       
  ShowNum ( 123.456789) ;   
  ShowNum(123,5);          
  ShowNum(123.456789,9);    
  ShowNum(22 div 7,5);      
                           
  if ShowNum(123.456789,-3)=False then
     Writeln('数据格式设置错误,输出失败。');
  Writeln('按下回车键<Enter>退出。');
  Readln;
end.

解决方案 »

  1.   

    分都给这么少啊,解答之后别不结账就行1、Precision:Integer = 4  这是给函数参数设置默认值,至于你说为什么不用“:=”,只能说这是语法规定
    2、result函数返回值变量,系统自动声明的
    3、exit是一个系统函数,作用为退出过程或函数
    4、Format('%*.*f', [10, Precision, Num]);  是以精确10位方式显示浮点数
      

  2.   

    [size=24px]还不结账啊???[/size]
      

  3.   

    program Project2_12;
    {$APPTYPE CONSOLE}
    uses Sysutils;             
    function ShowNum(Num:Double;Precision:Integer = 4):Boolean;  
    //(*  Precision:Integer = 4 这里是怎么回事?赋值?赋值应该是:=啊,还有,给形参赋值,这是个啥意思? *)
    //Precision:Integer = 4默认数值是4,你可以在调用的时候仅仅shownum(123456.123);
      var  MesStr : string;    
      begin
        if Precision <= -1 then 
           begin
             result := false ; 
    //  (*  平白无故地钻出来个result,这又是怎么回事? *)
    //函数的返回值有两个办法,第一个是result:=...
    //                     第二个是直接用函数名代替。    
             exit;    
    // (* 这个也是这样,平白无故地钻出来个exit,这又是怎么回事?*)       
    //下边的不执行,直接退出。  
         end
        else
           begin                
             MesStr := Format('%*.*f', [10, Precision, Num]); 
     //(*  我知道这是个Format函数,网上也有一大堆Format介绍,但我想知道这里的每个参数的准确意思,如,%*.*f    10   Precision    Num      *)
    //%*.*f是格式化字符串,格式化后的就是这样的形式。
    //10,是以精确10位方式显示浮点数
    //第一个*是Precision
    //第二个*是NUM。
             result := true ;
           end ;
        Writeln(MesStr);        
      end ;
    begin                       
      ShowNum ( 123.456789) ;   
      ShowNum(123,5);          
      ShowNum(123.456789,9);    
      ShowNum(22 div 7,5);      
                               
      if ShowNum(123.456789,-3)=False then
         Writeln('数据格式设置错误,输出失败。');
      Writeln('按下回车键<Enter>退出。');
      Readln;
    end.