Contributor: PEDRO GUTIERREZ Program Sample_Trunc_Frac; Var nNumber, nTrunc, nFrac : Real; { Number es xxxx.yyy } Procedure Trunc_Frac(nIn : Real; Var nTruncOut,nFracOut : Real); Var cSt : String; nDummy : Integer; Begin Str(nIn:18:8,cSt); Val(Copy(cSt,1,10),nTruncOut,nDummy); Val('0'+Copy(cSt,10,5),nFracOut,nDummy); { .xxx } End; Begin Writeln; nNumber := 1234567.891234; Trunc_frac(nNumber,nTrunc,nFrac); Writeln('Number : ',nNumber:18:8, ' Trunc : ',nTrunc:10:0, ' Frac : ',nFrac:18:8); nNumber := 5555.0; Trunc_frac(nNumber,nTrunc,nFrac); Writeln('Number : ',nNumber:18:8, ' Trunc : ',nTrunc:10:0, ' Frac : ',nFrac:18:8); nNumber := -10001.555; Trunc_frac(nNumber,nTrunc,nFrac); Writeln('Number : ',nNumber:18:8, ' Trunc : ',nTrunc:10:0, ' Frac : ',nFrac:18:8); End.