Converts a Float into a string of length Len with Zero Padding to the Left.Unit
QESBPCSConvert
Declaration
Function Float2ZStr(const X: Extended; const Len: Byte; const Decimals: Byte = 4): string;
Description
ESBNumPosSign controls whether a '+' Sign appears at the beginning for positive Integers. ESBBlankWhenZero can be set to True to have Zero returned as an Empty string, where Zero is dependent upon ESBTolerance. Also see Float2EStr, Float2CStr & Float2Str
X | Value to Convert to String. |
Len | is the length of the resultant string. If it is too small then valid digits will be truncated from the right. |
Decimals | is the desired number of Decimal places, defaults to 4 |
Category
String/Float Conversion Routines
Implementation
function Float2ZStr (const X: Extended; const Len: Byte;
const Decimals: Byte = 4): string;
var
Hold: Boolean;
Len2: Byte;
begin
if ESBBlankWhenZero and FloatIsZero (X) then
begin
Result := BlankStr (Len);
Exit;
end;
Hold := ESBNumPosSign;
try
ESBNumPosSign := False;
Result := Float2EStr (Abs (X), Decimals);
finally
ESBNumPosSign := Hold;
end;
if (Len > 0) and (FloatIsNegative (X) or (FloatIsPositive (X) and ESBNumPosSign)) then
Len2 := Len - 1 // Need to leave space for the sign
else
Len2 := Len;
Result := PadChLeftStr (LeftStr (Result, Len2), '0', Len2); // Pad with Zeroes
if FloatIsNegative (X) then // Add Sign if necessary
Result := '-' + Result
else if FloatIsPositive (X) and ESBNumPosSign then
Result := '+' + Result;
End; |
Declaration
Function Float2ZStr(const X: Double; const Len: Byte; const Decimals: Byte = 4): string;Implementation
function Float2ZStr (const X: Double; const Len: Byte;
const Decimals: Byte = 4): string;
var
Hold: Boolean;
Len2: Byte;
begin
if ESBBlankWhenZero and FloatIsZero (X) then
begin
Result := BlankStr (Len);
Exit;
end;
Hold := ESBNumPosSign;
try
ESBNumPosSign := False;
Result := Float2EStr (Abs (X), Decimals);
finally
ESBNumPosSign := Hold;
end;
if (Len > 0) and (FloatIsNegative (X) or (FloatIsPositive (X) and ESBNumPosSign)) then
Len2 := Len - 1 // Need to leave space for the sign
else
Len2 := Len;
Result := PadChLeftStr (LeftStr (Result, Len2), '0', Len2); // Pad with Zeroes
if FloatIsNegative (X) then // Add Sign if necessary
Result := '-' + Result
else if FloatIsPositive (X) and ESBNumPosSign then
Result := '+' + Result;
End; |
Declaration
Function Float2ZStr(const X: Single; const Len: Byte; const Decimals: Byte = 4): string;Implementation
function Float2ZStr (const X: Single; const Len: Byte;
const Decimals: Byte = 4): string;
var
Hold: Boolean;
Len2: Byte;
begin
if ESBBlankWhenZero and FloatIsZero (X) then
begin
Result := BlankStr (Len);
Exit;
end;
Hold := ESBNumPosSign;
try
ESBNumPosSign := False;
Result := Float2EStr (Abs (X), Decimals);
finally
ESBNumPosSign := Hold;
end;
if (Len > 0) and (FloatIsNegative (X) or (FloatIsPositive (X) and ESBNumPosSign)) then
Len2 := Len - 1 // Need to leave space for the sign
else
Len2 := Len;
Result := PadChLeftStr (LeftStr (Result, Len2), '0', Len2); // Pad with Zeroes
if FloatIsNegative (X) then // Add Sign if necessary
Result := '-' + Result
else if FloatIsPositive (X) and ESBNumPosSign then
Result := '+' + Result;
End; |
HTML generated by Time2HELP
|
http://www.time2help.com