首页 > 解决方案 > 浮点值需要在 0.59 之后四舍五入,就像秒一样

问题描述

这是一个脚本,它将添加在输入字段中输入的所有浮点值。但是我在ROUNDING THE VALUE遇到了问题。使用我的脚本,小数点前的值在 0.99 之后四舍五入(如商品价格)。但我想在 0.59(如分钟)之后四舍五入该值。

单击计算按钮时,该值将显示在另一个输入字段中。

function add_number() {
  var first = parseFloat(document.getElementById("sunday").value);
  var second = parseFloat(document.getElementById("monday").value);
  var third = parseFloat(document.getElementById("tuesday").value);
  var forth = parseFloat(document.getElementById("wednesday").value);
  var fifth = parseFloat(document.getElementById("thursday").value);
  var sixth = parseFloat(document.getElementById("friday").value);
  var seventh = parseFloat(document.getElementById("saturday").value);
  var rsl = first + second + third + forth + fifth + sixth + seventh;
  document.getElementById("txtresult").value = rsl.toFixed(2);
}
<input type="number" name="sunhrs" id="sunday" />
<input type="number" name="monhrs" id="monday" />
<input type="number" name="tuesday" id="tuesday" />
<input type="number" name="wedhrs" id="wednesday" />
<input type="number" name="thurshrs" id="thursday" />
<input type="number" name="frihrs" id="friday" />
<input type="number" name="sathrs" id="saturday" />

<button onclick="add_number()">Calculate</button>
<br>
<br>
<input type="number" name="txtresult" id="txtresult" />

示例:如果我在输入字段中输入 1.50,1.50 并单击计算按钮,则输出将为3.00,因为该值在 0.99 之后四舍五入。但我希望值在0.59之后四舍五入,所以输出将为3.40

提前致谢。

已编辑:帖子中的第一个问题(在我更改之前);“结果”这个词对于 JavaScript 来说是特殊的,我没有将它用于变量名。

其次,忘记添加 id 为 txtresult 的元素

;) 感谢您的关注。

标签: javascripthtmldom

解决方案


为了以您想要的方式将这些值相加,您需要将输入转换为小数小时,然后从小数小时转换回所需的表示形式。JavaScript 没有内置“小时”数据结构。JavaScriptNumber类型具有十进制基数,因此它只能像常规十进制数字一样工作。

例如

var first = hoursFromString(document.getElementById("sunday").value);
//etc.

然后

document.getElementById("txtresult").value = stringFromHours(result);

如果您需要写作hoursFromString或帮助stringFromHours,请使用您遇到问题的部分的更多信息更新您的问题。


推荐阅读