¿Cómo mostrar el porcentaje correcto?

violín: https://jsfiddle.net/252jxsjq/1/

¿Cómo puedo mostrar 65 en lugar de 64.72343432 …?

Finalmente, ¿cómo puedo hacer que el número de clics sea igual para todos los usuarios? Por ejemplo, ahora si hago clic 60 veces en un botón, si cambio la computadora, las horas mostradas son 0.

jQuery:

var counter = localStorage.getItem('rans') || 0; $('.redanswer').click(function(){ localStorage.setItem('rans', ++counter); $( '.bpercent' ).html( counter1 * 100 / (counter1+counter) + "%" ); $( '.rpercent' ).html( counter * 100 / (counter1+counter) + "%" ); }); var counter1 = localStorage.getItem('bans') || 0; $('.blueanswer').click(function(){ localStorage.setItem('bans', ++counter1); $( '.rpercent' ).text( counter * 100 / (counter1+counter) + "%" ); $( '.bpercent' ).text( counter1 * 100 / (counter1+counter) + "%" ); }); 

Use la función Math.round de JavaScript.

 $('.redanswer').click(function(){ localStorage.setItem('rans', ++counter); $( '.bpercent' ).html( Math.round( counter1 * 100 / (counter1+counter) ) + "%" ); $( '.rpercent' ).html( Math.round( counter * 100 / (counter1+counter) ) + "%" ); }); 

El almacenamiento local guarda el estado o la variable en la máquina del cliente (o, por ejemplo, en el navegador). Como dijo Mike, si quiere ahorrar valor para todos los dispositivos, necesitará algunas implementaciones del lado del servidor que puedan administrar el contador de clics para todos los usuarios de todo el mundo.

Debes asegurarte de que cuando estás haciendo counter1+counter estás agregando números enteros y no concatenando cadenas. parseInt() ayudará con eso.

Además, como han mencionado otros, Math.floor() o Math.round() pueden ayudar con eso.

Algo como esto funcionaría:

 counter = localStorage.getItem('rans') || 0; $('.redanswer').click(function(){ localStorage.setItem('rans', ++counter); sum = (parseInt(counter1) + parseInt(counter)); $( '.bpercent' ).html( Math.floor(counter1 * 100 / sum) + "%" ); $( '.rpercent' ).html( Math.floor(counter * 100 / sum) + "%" ); }); counter1 = localStorage.getItem('bans') || 0; $('.blueanswer').click(function(){ localStorage.setItem('bans', ++counter1); sum = (parseInt(counter1) + parseInt(counter)); $( '.rpercent' ).text( Math.floor(counter * 100 / sum) + "%" ); $( '.bpercent' ).text( Math.floor(counter1 * 100 / sum) + "%" ); }); 

Puedes verlo en este JS Fiddle: https://jsfiddle.net/igor_9000/252jxsjq/4/

En cuanto al almacenamiento permanente en diferentes máquinas, busque en algunos idiomas del lado del servidor y almacene información para diferentes usuarios.

¡Espero que ayude!