我有小数一组串数字,例如:23.456,9.450,123.01...我需要找回小数每个号码的数量,因为他们知道至少有1位小数.
换句话说,该retr_dec()方法应返回以下内容:
retr_dec("23.456") -> 3
retr_dec("9.450") -> 3
retr_dec("123.01") -> 2
Run Code Online (Sandbox Code Playgroud)
在这种情况下,尾随零计数为小数,与此相关问题不同.
在Javascript中是否有一个简单/交付的方法来实现这一点,或者我应该计算小数点位置并计算字符串长度的差异?谢谢
重要的是要注意我不是在寻找舍入函数.我正在寻找一个函数,它返回任意数字的简化十进制表示中的小数位数.也就是说,我们有以下内容:
decimalPlaces(5555.0); //=> 0
decimalPlaces(5555); //=> 0
decimalPlaces(555.5); //=> 1
decimalPlaces(555.50); //=> 1
decimalPlaces(0.0000005); //=> 7
decimalPlaces(5e-7); //=> 7
decimalPlaces(0.00000055); //=> 8
decimalPlaces(5.5e-7); //=> 8
Run Code Online (Sandbox Code Playgroud)
我的第一直觉是使用字符串表示:拆分'.',然后打开'e-',并进行数学计算,如此(示例是详细的):
function decimalPlaces(number) {
var parts = number.toString().split('.', 2),
integerPart = parts[0],
decimalPart = parts[1],
exponentPart;
if (integerPart.charAt(0) === '-') {
integerPart = integerPart.substring(1);
}
if (decimalPart !== undefined) {
parts = decimalPart.split('e-', 2);
decimalPart = parts[0];
}
else {
parts = integerPart.split('e-', 2);
integerPart = parts[0];
}
exponentPart = parts[1]; …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个函数,使用此处的答案作为参考,获取浮点文字中小数点后的小数位数。
尽管在浏览器控制台中尝试时这似乎工作正常,但在 Node.js 环境中运行测试用例时,精度最多仅被截断 14 位。
let data = 123.834756380650877834678
console.log(data) // 123.83475638065088
Run Code Online (Sandbox Code Playgroud)
该函数返回 14 作为答案。
为什么在休息时进行舍入?这是默认行为吗?