www.webdeveloper.com
Results 1 to 2 of 2

Thread: Please help with my coding

  1. #1
    Join Date
    Mar 2010
    Posts
    1

    Smile Please help with my coding

    Hi All,

    I need to change my coding so that it only converts numbers from 1-50 but cannot get it to work as my code allows users to type in numbers above this and it produces a number. Please can you help??

    function converter(e){
    var t = drawNumerals;
    var a = [[50,'L'],
    [40,'XL'],[10,'X'],
    [9,'IX'],[5,'V'],[4,'IV'],[1,'I']];
    for (var i = 0; i < a.length; i++){
    while (e - a[i][0] >= 0){
    t(a[i][1]);
    if (a[i].length == 3){
    t(a[i][2]);
    }
    e -= a[i][0];
    }
    }
    }

    Thanks Israa

  2. #2
    Join Date
    Feb 2006
    Posts
    2,926
    You can use the built-in toRoman method of the Number object, and pass it the upper limit as an argument.

    Your code could be
    function converter(n){
    return n.toRoman(50);
    }


    If a browser does not have the method natively, it is easy to add it:

    Code:
    Number.prototype.toRoman=Number.prototype.toRoman ||
    function(limit){
        var n= this, val, s= '', limit=limit || 3999,
        v= [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1],
        r= ['M','CM','D','CD','C','XC','L','XL','X','IX','V','IV','I'];
    
        limit=Math.min(3999,limit); 
        if(n< 1 || n> limit) return '';
        for(var i= 0; i < 13; i++){
            val= v[i];
            while(n>= val){
                n-= val;
                s+= r[i];
            }
            if(n== 0) return s;
        }
        return '';
    }
    You could also rewrite the method to not need the argument,
    by setting limit to 50, and looping through the last 7 items in the arrays.
    Last edited by mrhoo; 03-07-2010 at 09:18 AM.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles