www.webdeveloper.com
Results 1 to 6 of 6

Thread: Very new to Javascript

  1. #1
    Join Date
    Jun 2013
    Posts
    4

    Question Very new to Javascript

    Hello,

    I'm trying to use Javascript to enhance a few features of my site.
    I've wrote a fewlines that will convert two textboxes between cm and inches interchangeably.

    However, I would also like to round the result to make it easier to read.

    i.e. Entering Inches = 1.4
    Yields cm = 3.5559999999999996
    Whereas it should really read cm = 3.556, or even 3.56

    In the code below I tried changing the line

    Code:
    ONKEYUP="document.convert.ins.value = (1/2.54) * document.convert.cms.value" 
    
    to
    
    ONKEYUP="document.convert.ins.value = Math.round((1/2.54) * document.convert.cms.value)"
    Here's my code:

    Code:
     <FORM ACTION="#" NAME="convert" >
    Enter Inches
    <INPUT TYPE=TEXT NAME="ins"
        ONKEYUP=" document.convert.cms.value = 2.54 * document.convert.ins.value" 
    	
    	>
    <BR><BR>
    <INPUT TYPE=TEXT NAME="cms" 
        ONKEYUP="document.convert.ins.value = (1/2.54) * document.convert.cms.value" 
    
    	>
    centimetres
    </FORM>
    Thanks in advance!

  2. #2
    Join Date
    Oct 2010
    Location
    Versailles, France
    Posts
    1,277
    To work with numbers use
    Code:
    var rndValue=math.round(100*value)/100;
    But to build a string prefer :
    Code:
    var rndString=value.toFixed(2);

  3. #3
    Join Date
    Jun 2013
    Posts
    4
    Quote Originally Posted by 007Julien View Post
    To work with numbers use
    Code:
    var rndValue=math.round(100*value)/100;
    But to build a string prefer :
    Code:
    var rndString=value.toFixed(2);
    Thanks for the help, but I'm still too new to work that out. I've tried it in numerous places inside my code, but I can't get it to work sorry.

  4. #4
    Join Date
    Jun 2013
    Posts
    4
    Thanks, I've solved it now.

  5. #5
    Join Date
    May 2006
    Location
    Somewhere behind your screen
    Posts
    1,674
    a hint: if Julien saw your code the help could be much more efficient

  6. #6
    Join Date
    Sep 2007
    Posts
    317
    Code:
     
    <html>
    <head>
    
    <script type="text/javascript">
    // http://www.webdeveloper.com/forum/showthread.php?279263-Very-new-to-Javascript
    // http://www.w3schools.com/jsref/jsref_unshift.asp
    // http://www.w3schools.com/jsref/jsref_obj_array.asp
    // http://www.w3schools.com/jsref/jsref_obj_string.asp
    // http://www.w3schools.com/jsref/jsref_charat.asp
    // http://www.w3schools.com/jsref/jsref_obj_regexp.asp
    
    
    
    // çarpma işlemi
    // multiplication
    
    // çarpma işlemini yapmaya başlayalım
    
    function multiplication(num, num2, dec) { 
    // alert(' baştaki dec = '+dec);
    // dizilerin eleman sayıları aynı değilse, dizinin baş kısmına 0 ekleyerek, eleman sayılarını aynı yapalım.
    while(num.length > num2.length) { num2.unshift(0); }
    while(num2.length > num.length) { num.unshift(0); }
    
    var netice = [];
    var i, k, t, basamak, elde = 0, L = num.length -1;
    for(i=L; i>=0; i--)  {
    basamak = elde;
     
     t=i;
    for(k = L; k>=i; k--) {
     basamak += num[k] * num2[t]; 
     t++;
     }
    if(basamak>9) { elde =   parseInt(basamak/10);   netice.unshift(basamak % 10); }
    if(basamak < 10) { elde = 0; netice.unshift(basamak) ; }
    }
    
    var p, r = L - 1, u = r, y;
    for( p= r; p >=0; p--) {
    y=p;
     basamak = elde;
      for( m = 0; m<=p; m++) {
     basamak += num[m] * num2[y];  y--;  
    }
    
    if(basamak>9) { elde =   parseInt(basamak/10);  netice.unshift(basamak % 10); }
    if(basamak < 10) { elde = 0; netice.unshift(basamak) ; }
    
    }
    
    if(elde > 0) { 
    netice.unshift(elde); 
    }
    // dizide hangi sayıdan önce nokta olması gerektiğini belirleyelim.
    if(dec > 0 ) {  var say = netice.length - dec;  netice[say] =  '.'+ netice[say]; }
    
    // diziyi stringe çevirelim. Baş kısımda 0 var ise bunları atalım.
    var s = netice.join('').replace(/^0+/,'');
    //alert('s = '+ s); 
    return s;
    
    }
    
    
    
    function bul() {
    
    var el = document.convert.ins.value;
    
    // metin kutusuna sayı girip girmediğini kontrol edelim
    var re = /^\d+(\.\d+)?$/;
    // alert(re.test(el));
    if(re.test(el)== false) { alert('enter a number  (1.4  or 14 )'); return false;}
    
    var A = []; // bu dizinin içine, metin alanına girilen sayıyı yerleştireceğiz
    
    var dec=0; // ondalık basamak sayısı
    var i;
    
    
     for( i=0; i<el.length; i++) { 
      if(el.charAt(i) != '.') { A[A.length] =  el.charAt(i); }
      if(el.charAt(i) == '.'){ dec = el.length - (i+1); }
     }
    //alert('A =  '+A);
    //alert('dec = '+dec);
    var B = [2,5,4]; // 2.54 sayısındaki rakamları sırayla dizi içine yerleştirdik
    dec = dec + 2 ; // 2.54 sayısında iki tane ondalık basamak var. Onu da ekleyelim 
    
    //alert('dec = ' + dec);
    
    
    var result = document.convert.cms;
    result.value = multiplication(A, B, dec);
    
    }
    
    </script>
    
    </head>
    <body>
     <FORM ACTION="#" NAME="convert" >
    Enter Inches
    <INPUT TYPE=TEXT NAME="ins"><BR><BR><input type="button" value="convert" onclick='bul()'>
    <BR><BR>
    <INPUT TYPE=TEXT NAME="cms" readonly> centimetres
    </FORM>
    </body>
    </html>

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