使用 jQuery 在输入框中显示小数点后两位的值,同时保留更高的精度

发布于 2024-10-22 08:34:25 字数 471 浏览 5 评论 0原文

可能的重复:
JavaScript:格式化数字精确到两位小数

也许我正在考虑这是错误的方式,但我有一些 javascript,它用 12.434234234 等数字填充一些文本输入。我希望文本输入仅显示 12.43,但我希望其值保留为 12.434234234。

这可能吗?如果没有,最好的解决方法是什么?

谢谢! 约翰.

-

虽然这里有一些非常好的答案,但我一直在寻找类似“你为什么不使用这个聪明的单衬管东西......”之类的东西 - 因此我勾选了最基本的方法,即只使用额外的场地。不过谢谢!标记了所有答案。

Possible Duplicate:
JavaScript: formatting number with exactly two decimals

Maybe I'm going about this the wrong way, but I have some javascript which is filling up some text inputs with numbers like 12.434234234. I want the text input to only display 12.43, but I'd like it's value to remain as 12.434234234.

Is this even possible? If not, what would be the best work-around?

Thanks!
John.

--

Although there were some very good answers here, I was looking for something like 'why don't you just use this clever one liner thing..' - hence I've ticked the most basic approach which is to just use an extra field. Thanks though! Marked up all answers.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

歌入人心 2024-10-29 08:34:25
num = 12.434234234;
result = num.toFixed(2); // returns 12.43
num = 12.434234234;
result = num.toFixed(2); // returns 12.43
瀞厅☆埖开 2024-10-29 08:34:25

您可以将细粒度值存储在隐藏字段中,并修剪为用户显示的值。

You can store the fine-grained values in hidden fields, and trim the ones displayed for the user.

夜光 2024-10-29 08:34:25

您可以将输入的值存储为输入的 data(使用 jQuery),在加载时对其进行格式化,然后在 submit 期间替换该值,如下所示:

http://jsfiddle.net/magicaj/8cdRs/1/

HTML:

<form id="form">
    <input type="text" class="formatted-number-input" value="12.434234234" />
</form>

JS:

$(".formatted-number-input").each(function() {
   var value = $(this).val(); 
   $(this).data("originalValue", value);
   var roundedValue = value.toFixed(2);
   $(this).val(roundedValue);
});

$("#form").submit(function() {    
    var formattedInput = $(".formatted-number-input");
    formattedInput.each(function() {
        var originalValue = $(this).data("originalValue");
        $(this).val(originalValue);
    });
});

You could store the value of the input as data of the input (using jQuery), format it onload and then replace the value during submit like so:

http://jsfiddle.net/magicaj/8cdRs/1/

HTML:

<form id="form">
    <input type="text" class="formatted-number-input" value="12.434234234" />
</form>

JS:

$(".formatted-number-input").each(function() {
   var value = $(this).val(); 
   $(this).data("originalValue", value);
   var roundedValue = value.toFixed(2);
   $(this).val(roundedValue);
});

$("#form").submit(function() {    
    var formattedInput = $(".formatted-number-input");
    formattedInput.each(function() {
        var originalValue = $(this).data("originalValue");
        $(this).val(originalValue);
    });
});
晚雾 2024-10-29 08:34:25

有多种方法可以解决这个问题:
1. 创建隐藏字段,在其中存储 12.434234234 并在文本字段中显示格式化值。
2. 使用 jquery.data() 存储原始 12.434234234 并在文本字段中显示格式化值。

There are multiple ways to solve this problem:
1. Create hidden field, store 12.434234234 in it and display formatted value in textfield.
2. Store original 12.434234234 using jquery.data() and display formatted value in textfield.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文