我正在使用JS从输入框转换数字。我正在使用.toFixed(2)来截断数字,但是当我转换回来时,它现在可以工作了。
示例:原始输入值为100
然后我使用公式将bbl转换为m3:
oldVal = jQuery(this).val();
oldVal = parseFloat(oldVal);
newConvertedVal = parseFloat((oldVal * 0.1589873).toFixed(2));
jQuery(this).val(newConvertedVal);
这很好,我得到了5.90的结果
但是,当我转换回来时,使用相反的公式:
oldVal = jQuery(this).val();
oldVal = parseFloat(oldVal);
newConvertedVal = parseFloat((oldVal / 0.1589873).toFixed(2));
jQuery(this).val(newConvertedVal);
但是当我转换回来时,我得到100.01
里面有额外的.01。
我不想四舍五入,因为在某些情况下,准确地转换可能会要求数字为浮点数。有没有更好的方法可以完全转换回去?
答案 0 :(得分:1)
如果“精确转换”,则表示您想要在一个方向上乘以.1589873的结果,并四舍五入到最接近的100 th ,然后在相反方向上进行转换的结果用.1589873除以产生原始输入,这是不可能的。
舍入到最接近的第100个 会丢弃信息。特别是,转换会将一些不同的数字映射到一个结果。
例如,考虑同时转换100和100.01:
因此,从转换结果15.90无法确定原始输入是100还是100.01。没有任何计算绝对可以得出正确的答案。