如何将两个浮点数填充到其中一个浮点数的精度
How to fill two floats to precision of one of them?
我有两个数字,例如:
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;
首先要认识到的是,在代码中,a
和b
是字符串,而不是数字。
你可以做的是把它们都转换成数字,做一个简单的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
相关文章:
- 将浮点数排序为自然数
- 使用javascript从字符串中提取浮点数
- 为大型地理位置的坐标生成浮点数
- 如何使用Javascript使浮点数的精度相同
- 从字符串到浮点数的奇怪转换
- 如何将浮点数格式化为两位数
- 浮点数的总和在 JavaScript 中没有给出小数
- 如何使用 javascript 将浮点数格式化为十进制数(7)
- HTML浮点数字字段具有高精度,但呈现四舍五入值
- 使用浮点数获取基于数组的y轴最大/最小值
- 只允许带有退格和左右箭头的浮点数
- javascript正则表达式浮点数,以字符串结尾
- 在AngularJS中格式化浮点数而不丢失精度
- 将浮点数向上舍入到 javascript 中的下一个整数
- 如何将两个浮点数填充到其中一个浮点数的精度
- 如何有效地随机化一个相对较小的数组,所有相同的浮点数保持总和
- 我如何得到一个有2个整数的浮点数
- 将一个浮点数拆分为3个其他数
- 我如何检查,看看如果一个值是一个浮点数在javascript
- 如何在Javascript中将一个带逗号的数字转换为浮点数