Formatted numeric output

Revision as of 14:45, 13 February 2007 by MikeMol (talk | contribs) (Explained task description.)

Express a number in decimal as a fixed-length string with leading zeros.

Task
Formatted numeric output
You are encouraged to solve this task according to the task description, using any language you may know.

For example, the number 7.125 could be expressed as "00007.125".

Ada

with Ada.Text_Io.Editing; use Ada.Text_Io.Editing;
with Ada.Text_Io; use Ada.Text_Io;

procedure Zero_Fill is
   Pic_String: String := "<999999.99>";
   Pic : Picture := To_Picture(Pic_String);
   type Money is delta 0.01 digits 8;
   package Money_Output is new Decimal_Output(Money);
   use Money_Output;
   
   Value : Money := 37.25;
begin
   Put(Item => Value, Pic => Pic);
end Zero_Fill;

The output of this program is

000037.25 

C

void printit(int val)
{
    printf ("%08d", val);    // Prints 8 digits with leading zeros
}

JavaScript

var n = 123
var str = ("00000"+m).slice(-5)
alert(str)
//or, put in browser URL: javascript:n=123;alert(("00000"+n).slice(-5))

Perl

Interpreter: Perl v5.x

my $num = 123.45
my $pad = '0' x (5 - length(int($num))) . $num;
# $pad is now 00123.45

Python

#tested in Python 2.4.1
n = 123
str = "%05d" % n  #5 places wide, leading zeros
print n, str
#output: 123 00123

SQL

--Tested MS SQL 2005
declare @n int
select @n=123
select substring(convert(char(5), 10000+@n),2,4) as FourDigits

set @n=5
print "TwoDigits: " + substring(convert(char(3), 100+@n),2,2)
--Output: 05