如何关闭jQuery Knob库的自动四舍五入?float值调用val()被取整问题
问题原因
jQuery Knob组件默认步长step配置值为1,所有传入值都会按照步长1自动四舍五入取整,这是数值精度丢失的根本原因。
解决方案
- 修改Knob初始化配置,新增
step参数设置为0.1,匹配保留1位小数的需求,修改后的初始化代码如下:
$(document).ready(function() { var color = 'green' $('.dial').knob({ 'min': 0, 'max': 100, 'width': "100%", 'height': "100%", 'displayInput': true, 'fgColor': color, 'readOnly': true, 'step': 0.1, // 新增步长配置,支持1位小数精度 'draw': function() { $(this.i) .val(this.cv.toFixed(1) + 'ms') .css('font-size', '15pt') .css('color', 'black'); } }); });
- 原有赋值逻辑不需要调整,已做的
parseFloat转换可正常使用,修改配置后重新加载页面即可正常展示浮点数值。
如果后续需要更高的小数精度,将step参数调整为对应值即可,比如需要保留两位小数设置为0.01。
内容的提问来源于stack exchange,提问作者Emile
相关产品推荐
相关产品推荐

