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,290
    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,716
    a hint: if Julien saw your code the help could be much more efficient
    signature under construction

  6. #6
    Join Date
    Sep 2007
    Posts
    390
    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

"

"

X vBulletin 4.2.2 Debug Information

  • Page Generation 0.15868 seconds
  • Memory Usage 2,897KB
  • Queries Executed 15 (?)
More Information
Template Usage (34):
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_global_above_footer
  • (1)ad_global_below_navbar
  • (1)ad_global_header1
  • (1)ad_global_header2
  • (1)ad_navbar_below
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)ad_thread_first_post_content
  • (1)ad_thread_last_post_content
  • (7)bbcode_code
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)headinclude_bottom
  • (6)memberaction_dropdown
  • (1)navbar
  • (4)navbar_link
  • (1)navbar_moderation
  • (1)navbar_noticebit
  • (1)navbar_tabs
  • (2)option
  • (6)postbit
  • (6)postbit_onlinestatus
  • (6)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available (6):
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files (26):
  • ./showthread.php
  • ./global.php
  • ./includes/class_bootstrap.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/functions_navigation.php
  • ./includes/class_friendly_url.php
  • ./includes/class_hook.php
  • ./includes/class_bootstrap_framework.php
  • ./vb/vb.php
  • ./vb/phrase.php
  • ./includes/functions_facebook.php
  • ./includes/functions_calendar.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_notice.php
  • ./packages/vbattach/attach.php
  • ./vb/types.php
  • ./vb/cache.php
  • ./vb/cache/db.php
  • ./vb/cache/observer/db.php
  • ./vb/cache/observer.php 

Hooks Called (72):
  • init_startup
  • friendlyurl_resolve_class
  • init_startup_session_setup_start
  • database_pre_fetch_array
  • database_post_fetch_array
  • init_startup_session_setup_complete
  • global_bootstrap_init_start
  • global_bootstrap_init_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • load_show_variables
  • load_forum_show_variables
  • global_state_check
  • global_bootstrap_complete
  • global_start
  • style_fetch
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • strip_bbcode
  • friendlyurl_clean_fragment
  • friendlyurl_geturl
  • forumjump
  • cache_templates
  • cache_templates_process
  • template_register_var
  • template_render_output
  • fetch_template_start
  • fetch_template_complete
  • parse_templates
  • fetch_musername
  • notices_check_start
  • notices_noticebit
  • process_templates_complete
  • friendlyurl_redirect_canonical
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • memberaction_dropdown
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • build_navigation_data
  • build_navigation_array
  • check_navigation_permission
  • process_navigation_links_start
  • process_navigation_links_complete
  • set_navigation_menu_element
  • build_navigation_menudata
  • build_navigation_listdata
  • build_navigation_list
  • set_navigation_tab_main
  • set_navigation_tab_fallback
  • navigation_tab_complete
  • fb_like_button
  • showthread_complete
  • page_templates