javascript - 如何处理下拉列表的小数值而不舍入或 trim 零

标签 javascript jquery decimal rounding

我有一个带有十进制值的下拉列表。 (格式化为字符串)

<select id="SizeBox">
   <option id="size_5" value="14.00">14</option>
   <option id="size_6" value="16.00">16</option>
   <option id="size_7" value="18.00">18</option>
   <option id="size_8" value="20.00">20</option>
   <option id="size_9" value="24.00">24</option>
   <option id="size_10" value="28.00">28</option>
   <option id="size_11" selected="selected" value="28.35">28,35</option>
   <option id="size_12" value="36.00">36</option>
</select>

我总是采用所选值并将其保存在变量中:

var backupSize = "28.35";

当用户选择另一个尺寸并想要撤消其更改时,我提供了一个重置​​按钮,应再次选择 backupSize 值。

SelectSize(parseFloat(backupSize).toFixed(2));

function SelectSize(size) {
   $('#SizeBox').val(size);
}

问题是使用此 toFixed 方法会删除我的小数精度并将值 28.00 传递给 SelectSize 函数。当然,我的列表中没有具有此值的选项,因此重置功能失败。

如果我使用不带 toFixed(2) 部分的 SelectSize 函数,则“20.00”等值将作为“20”传递,并且 SelectSize 函数也将无法重置下拉框中的大小。

我已经搜索了像字符串一样处理这些十进制数字的函数,但到目前为止还没有成功。我该如何解决这个问题?

感谢您的帮助!

最佳答案

以下内容适用于任何值: 工作示例:http://jsfiddle.net/4DSNS/2/

var backupSize = 20
var backupSize = 28.35
var backupSize = "28.35"
var backupSize = "20.00"
var backupSize = "20"
var backupSize = "28.35"
var backupSize = "28,35"
function SelectSize(size) {
   size = size.toString().replace(',','.');
   parseFloat(size).toFixed(2);
   $('#SizeBox').val(size);
}

SelectSize(backupSize);

关于javascript - 如何处理下拉列表的小数值而不舍入或 trim 零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10830356/

相关文章:

javascript - 为什么幻灯片代码不正确?

javascript - MVC3,同一个页面View之间的切换

c++ - 如何计算 C++ 中 double 变量的小数位数?

javascript - 上传时只显示图片名称

javascript - 将 Backbone.js 异步获取操作结果绑定(bind)到 View 的正确方法

javascript - PHP 未获取 session 最新值

javascript - mutationObserver - 如何观察innerHTML?

javascript - 使用 javascript/jquery 在一个函数中编写多个按钮

iphone - UIKeyboardTypeDecimalPad - 将逗号更改为点

javascript - 将值的小数点分隔到新变量中(例如 : get "0.6" from the value "3.6")