繁体   English   中英

JavaScript计算器总是四舍五入

[英]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(); } ); // ]]&gt; </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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM