如何将两个浮点数填充到其中一个浮点数的精度

How to fill two floats to precision of one of them?

本文关键字:浮点数 一个 精度 两个 填充      更新时间:2023-09-26

我有两个数字,例如:

var a = $('input#number_1').val(); // 12;
var b = $('input#number_2').val(); // 0.01;

如何将a填充到b的精度?

a: 12.01
b: 0.01

或者将两者都填充为例如:

a: 12.0000
b: 0.0100

编辑:

var a = parseFloat($('input#number_1').val()); // 12;
var b = parseFloat($('input#number_2').val()); // 0.01;

首先要认识到的是,在代码中,ab字符串,而不是数字。

你可以做的是把它们都转换成数字,做一个简单的toString,找出每个数字的.后面有多少位,然后用这些数字中较大的一个加上数字上的toFixed(这可以让你说出你想要的小数点后多少位)。

例如:

var a = $('input#number_1').val();
var b = $('input#number_2').val();
// Convert them to numbers
var aValue = +a;
var bValue = +b;
// Find out which has more digits after the decimal
var maxDigits = 0;
var n;
a = String(aValue);
n = a.indexOf('.');
if (n !== -1) {
  maxDigits = a.length - n - 1;
}
b = String(bValue);
n = b.indexOf('.');
if (n !== -1) {
  maxDigits = Math.max(b.length - n - 1, maxDigits);
}
// Convert back to strings with that many of digits
a = aValue.toFixed(maxDigits);
b = bValue.toFixed(maxDigits);
// Put them back in the fields if that's what you want
$('input#number_1').val(a);
$('input#number_2').val(b);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input id="number_1" value="12">
<input id="number_2" value="0.01">

尝试这个javascript toFixed函数,它用于修复十进制值。您可以将小数位数设置为函数。确保你通过了什么。,您可以根据您的要求进行更改

var num = 5;
var n = num.toFixed(2)
alert(n);
num = 5.6785;
n = num.toFixed(2)
alert(n);

参考:http://www.w3schools.com/jsref/jsref_tofixed.asp