jquery - 输入框中只显示小数点到 2 位?
问题描述
我有一个我正在构建的计算器,用户可以在其中在英制和公制之间来回转换单位。
我的代码如下:
oldVal = jQuery(this).val();
oldVal = parseFloat(oldVal);
newConvertedVal = parseFloat((oldVal * 0.1589873).toFixed(2));
jQuery(this).val(newConvertedVal);
我正在使用 .toFixed(2) 因为我将数字修剪到小数点后 2 位。我唯一的问题是,如果我使用以下方法转换回来:
newConvertedVal = parseFloat((oldVal / 0.1589873).toFixed(2));
然后它不会回到完全相同的数字,因为这些是四舍五入的。
出于这个原因,我想停止使用 .toFixed(2) ,但是我的应用程序将显示一些冗长的浮点数。
有没有办法使用完整的数字进行转换,但只显示数字到小数点后 2 位?我已经研究过在 html ( https://www.w3schools.com/tags/att_pattern.asp ) 中使用模式属性,但这不受 Safari 支持。
有任何想法吗?
解决方案
我会使用 data 函数来存储数字:
oldVal = jQuery(this).val();
oldVal = parseFloat(oldVal);
var val = (oldVal * 0.1589873);
jQuery(this).data("numberValue", val);
jQuery(this).val(parseFloat(val.toFixed(2)));
您可以稍后以这种方式将其取回(假设此时仍在上下文中):
var theValue = parseFloat(jQuery(this).data("numberValue"));
推荐阅读
- css - Bootsrap 3 不等边框加粗
- python-sphinx - Doxygen 调用图:命名约定,与 Sphinx (Breathe) 一起使用
- terraform - Terraform 添加 lambda 层
- wordpress - Timber/Twig 显示:“致命错误:未捕获的 TypeError:参数 1 已传递给 Twig\CacheExtension\CacheStrategy..”
- react-native - 即使在使用 useCallback 之后,FlatList 也会在每次视图加载时呈现
- mocking - 测试信用卡号码如何标准化?
- javascript - 菜单打开时禁用单击并使背景变暗(div)
- firebase - 如何获取当前 LoggedIn 用户的 uid 以使用相应用户的数据(Flutter)
- python - Python:组合多个类装饰器并在 PyCharm 中获得相同的行为
- javascript - 如何使用 String.prototype.search 找到确切的子字符串?