[英]JavaScript Calculator always rounding to floor
我已经根据自己的需要制作了一个计算器,但是四舍五入可以得出我所有的结果。
如何显示准确的结果?
function toFixed(value, precision) {
var precision = precision || 0,
neg = value < 0,
power = Math.pow(10, precision),
value = Math.round(value * power),
integral = String((neg ? Math.ceil : Math.floor)(value / power)),
fraction = String((neg ? -value : value) % power),
padding = new Array(Math.max(precision - fraction.length, 0) + 1).join('0');
return precision ? integral + '.' +
padding + fraction : integral; } function dosage () {
var a = parseInt(jQuery("#a").val() ) ;
var b = parseInt(jQuery("#b").val() ) ;
var c = parseInt(jQuery("#c").val() ) ;
var r = Math.round(a*((a*(b/100)*2)+(c*25.4))*(0.0152/100));
r = toFixed(r,1);
好吧,如果您编写了代码,那么您添加了:
integral = String((neg ? Math.ceil : Math.floor)(value / power))
因此,如果您不想要Math.floor
,应该将其取出? 或者,如果有时你想Math.floor
,你需要调查的neg
价值,因为这是什么原因造成您的返回值总是被舍去。
如您所愿,该行作为第二部分似乎不正确:
(value / power)
只是三元运算结果旁边的一个表达式。 我不确定这部分如何影响任何事情。
这是测试的完整代码
<script type="text/javascript"> jQuery(document).ready(function() { function dosage_e(e) { e.preventDefault(); dosage(); } function toFixed(value, precision) { var precision = precision || 0, neg = value < 0, power = Math.pow(10, precision), value = Math.round(value * power), integral = String((neg ? Math.ceil : Math.floor)(value / power)), fraction = String((neg ? -value : value) % power), padding = new Array(Math.max(precision - fraction.length, 0) + 1).join('0'); return precision ? integral + '.' + padding + fraction : integral; } function dosage () { var a = parseInt(jQuery("#a").val() ) ; var b = parseInt(jQuery("#b").val() ) ; var c = parseInt(jQuery("#c").val() ) ; var r = Math.round(a*((a*(b/100)*2)+(c*25.4))*(0.0152/100)); r = toFixed(r,1); jQuery("#result").val(r);} jQuery("#a").keyup( function (e) { dosage(e); } ); jQuery("#b").keyup( function (e) { dosage(e); } ); jQuery("#c").keyup( function (e) { dosage(e); } ); dosage(); } ); // ]]> </script> <div id="fond-voiture" align="center"> <div><h1 style="color:white; font-family:Arial;">VALUE 1</h1><input id="a" type="text" name="a" value="385" /> </div> </br> <div><h1 style="color:white; font-family:Arial;">VALUE 2</h1><input id="b" type="text" name="b" value="65" /> </div> </br> <div><h1 style="color:white; font-family:Arial;">VALUE 3</h1><input id="c" type="text" name="c" value="22.5"/> </div> </br> <div><h1 style="color:white; font-family:Arial;">VALUE 4</h1><input id="result" readonly="readonly"/> </div> </div> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.