- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 toFixed(2)
,但它没有变圆,我找不到原因?
表单
<div class="col col-sm-2"><%= f.input :price, placeholder: "Price incl. VAT", label: false, input_html:{class: "field price"} %></div>
<div class="col col-sm-2 "><%= f.input :amount, label: false, input_html:{class: "field quantity"} %></div>
<div class="col col-sm-2"><input type="text" class="field subtotal form-control"></div>
脚本
<script>
//on change
$('.field').keyup(function() {
var price = [];
var quantity = [];
$('.price').each(function(i, obj) {
price.push(+obj.value);
});
$('.quantity').each(function(i, obj) {
quantity.push(+obj.value);
});
console.log(price)
console.log(quantity)
var result = 0;
price.map((o,i)=>{
$(".subtotal").eq( i ).val(o*quantity[i]);
result += o*quantity[i];
});
result = parseFloat(result).toFixed(2)
$(".result").val(result);
})
</script>
最佳答案
Number.prototype.toFixed()
不对数字进行四舍五入。使用 Math.round()
来完成。此外,result
已经具有类型 Number
,因此 parseFloat
几乎没有用。而不是:
result = parseFloat(result).toFixed(2)
使用:
result = Math.round(result);
作为旁注,不要使用 .map
代替 .forEach
,这意味着:
price.map((o,i)=>{
$(".subtotal").eq( i ).val(o*quantity[i]);
result += o*quantity[i];
});
应该是这样的:
price.forEach((o, i) => {
$(".subtotal").eq( i ).val(o*quantity[i]);
result += o*quantity[i];
});
此外,我建议查询 DOM 一次而不是多次,因为遍历 DOM 是一个相当重量级的操作。
关于javascript - toFixed(2) 不四舍五入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59156730/
像下面这样使用 toFixed 得到: var a=0.5, b=1, c=1.5; console.log(a.toFixed(), b.toFixed(), c.toFixed()); // 0.
这个问题已经有答案了: Javascript toFixed function (6 个回答) 已关闭 9 年前。 当非小数部分大于 4 时,小数部分将被 chop 为 .3但当它小于 4 时,它会四
var number = 1.2; var rounded = number.tofixed() + 2 我正在尝试用任何数字求和 tofixed 值,但使用上面的代码我被四舍五入 = 12 吓到了.
我想知道之间的主要区别是什么 (2.3444).toFixed(2) ==> 2.34 还有 +(2.3444).toFixed(2) ==> 2.34 它们都给出相同的结果。谁能解释一下我什么时候需
根据这个post , 42..toFixed( 3 ); // "42.000" 上述代码有效,42..toFixed(3) 有效,因为第一个 . 是数字的一部分,第二个 . > 是属性运算符。
在许多情况下,toFixed() 会因 JavaScript 数学中的浮点而失败。 我找到了这个解决方案: function toFixed(decimalPlaces) { var factor =
我有以下代码块: export interface Record { Percentage_Emissions: number; Percentage_Emissions_Previous: numb
我正在使用 javascript 绑定(bind)到一些复选框,toFixed(2) 没有四舍五入。任何想法为什么它不四舍五入?例如,如果号码是 859.385,它只会显示 859.38 而不是 85
在我的程序中,我需要四舍五入到最接近的两位小数的“浮点”数字,经过一番研究,我决定使用 toFixed(..) 来实现此目的,如下例所示。使用 toFixed() 的缺点是什么?它在所有浏览器中都能正
美好的一天, 我仍在学习 JS 和 HTML,我注意到一些对我来说非常有趣的事情 我正在使用 Google 地理编码脚本,并在 map 上创建了一个点击事件来检索 GPS 坐标, function
我正在使用 toFixed 但该方法未按预期运行 parseFloat(19373.315).toFixed(2); //19373.31 Chrome 预期输出:19373.32 parseFl
我正在测试 javascript 的 toFixed() 方法。结果如下图。 (49.175).toFixed(2) => "49.17" (49.775).toFixed(2) => "49.77"
在特定组的用户的帐户仪表板上会显示一个唯一的编号。该数字是从数据库中获取并经常更改的。数量小于 10,000,000。 如果元素的宽度开始 chop 文本,那么将数字从“2,643,977”更改为“2
我的代码出现错误,以前从未遇到过这个错误,这真的很奇怪。我确实尝试过 parseFloat 但这也不起作用..代码:https://gist.github.com/markd69/aca03cab20
我正在使用 KnockoutJS,但遇到了一个问题,我不知道如何寻找解决方案: 我有一个包含记录的表: Edit Enter Hour
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
对于四舍五入小数(价格),我已经使用 .toFixed(2) 一段时间了。但我最近发现 JavaScript 不能“精确”四舍五入小数。我有点震惊,即使 10.005 也无法正确舍入为 10.01。它
我有以下代码来计算并显示两个值的总和。 var oldprice_formated = parseFloat(oldprice).toFixed(2); var extraPrice = parseF
这是我的脚本: jQuery(document).ready(function () { jQuery('#btnCalculate').click(function () {
我想保留数字后面的两位数字,即 2.89 或 2.00。谷歌把我带到this answer使用.toFixed(2)。 虽然效果很好,但在输入 input 值时效果不佳: const [ value,
我是一名优秀的程序员,十分优秀!