首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >javascript/jquery:如何将输入值限制在小数点后的2位小数以内

javascript/jquery:如何将输入值限制在小数点后的2位小数以内
EN

Stack Overflow用户
提问于 2021-08-06 16:17:00
回答 3查看 61关注 0票数 3

我正在努力处理一个输入,它应该得到输入B的减法-点后2个小数的输入A。它只在某些情况下有效:

代码语言:javascript
代码运行次数:0
运行
复制
$('.b').on('keyup', function() {
  var substr = $('.b').val() - $('.a').val();
  $('.c').val(substr).toFixed(2);
});
代码语言:javascript
代码运行次数:0
运行
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
A <input type="text" class="form-control a" value="" /><br /><br /> B <input type="text" class="form-control b" value="" /><br /><br /> B-A <input type="text" class="form-control c" value="" />

每个例子:如果你填入A:0.58和B 0.82,C中的值是2个十进制数,但是如果我把B中的值改为0.81,C的值不再是2个十进制数!

为什么会有这种奇怪的行为呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-08-06 16:22:19

您应该在substr上调用toFixed()

代码语言:javascript
代码运行次数:0
运行
复制
$('.b').on('keyup', function() {
    var substr = $('.b').val() - $('.a').val();
    $('.c').val(substr.toFixed(2))
});
代码语言:javascript
代码运行次数:0
运行
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
A <input type="text" class="form-control a" value="" /><br /><br />


 B <input type="text" class="form-control b" value="" /><br /><br />


  B-A <input type="text" class="form-control c" value="" />

票数 3
EN

Stack Overflow用户

发布于 2021-08-06 17:04:26

最好将变量转换为浮点型。这将允许您正确使用.toFixed()

请考虑以下内容。

代码语言:javascript
代码运行次数:0
运行
复制
$("input.b").on('keyup', function() {
  var a = parseFloat($("input.a").val());
  var b = parseFloat($("input.b").val());
  var c = (a - b).toFixed(2);
  $("input.c").val(c);
});
代码语言:javascript
代码运行次数:0
运行
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
A <input type="text" class="form-control a" value="19.9999" /><br /><br /> B <input type="text" class="form-control b" value="3.33333" /><br /><br /> B-A <input type="text" class="form-control c" value="" />

在你的脚本中,你也有一个小的打字错误:

代码语言:javascript
代码运行次数:0
运行
复制
$('.c').val(substr).toFixed(2);

这不会像预期的那样工作,我相信你的意思是:

代码语言:javascript
代码运行次数:0
运行
复制
$('.c').val(substr.toFixed(2));

然而,由于这将是字符串变量,它可能不会像预期的那样工作。

票数 2
EN

Stack Overflow用户

发布于 2021-08-07 07:22:05

代码语言:javascript
代码运行次数:0
运行
复制
var n =1.7373773;

n=n.toFixed(2);

document.write(n);

我想你指的是这个。

这将输出n=1.73

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68684716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档