删除小数点前的前导 0 和 return 作为数字 - javascript
remove leading 0 before decimal point and return as a number- javascript
问题
我需要 return 格式为 .66 的数字(来自包含前导零的输入值,例如 0.66)
必须return以小数点作为第一个字符的整数。
JavaScript中有什么方法可以帮助我做到这一点?
我尝试了什么?
我试过将其转换为 String() 并返回到 parseInt() 但包括小数点使其成为 return NaN。
我已经尝试将各种基数 (10, 16) 添加到我的 parseInt() - 也不成功
示例代码
const value = 0.66;
if(value < 1) {
let str = value.toString().replace(/^0+/, '');
// correctly gets '.66'
return parseInt(str)
}
//result NaN
预期
我希望输出删除前导 0 的值
例如0.45 --> .45 或 0.879 --> .879
当前观察
输出为 NaN
问题 #1:
0.66 不是整数。 An Integer是一个整数,这是一个浮点数。
问题 #2:
JavaScript 中不能有以小数点开头的数字。
即使您将 parseInt
更改为 parseFloat
,结果仍然是 return 0.66。
你问的是不可能的,如果你想让一个数字以小数点开头,那么它必须是一个字符串。
我尝试了一个快速解决方案,您可以尝试这样做:
let a = 0.45;
// split on decimal, at index 1 you will find the number after decimal
let b = a.toString().split('.')[1];
问题
我需要 return 格式为 .66 的数字(来自包含前导零的输入值,例如 0.66)
必须return以小数点作为第一个字符的整数。
JavaScript中有什么方法可以帮助我做到这一点?
我尝试了什么?
我试过将其转换为 String() 并返回到 parseInt() 但包括小数点使其成为 return NaN。
我已经尝试将各种基数 (10, 16) 添加到我的 parseInt() - 也不成功
示例代码
const value = 0.66;
if(value < 1) {
let str = value.toString().replace(/^0+/, '');
// correctly gets '.66'
return parseInt(str)
}
//result NaN
预期
我希望输出删除前导 0 的值 例如0.45 --> .45 或 0.879 --> .879
当前观察
输出为 NaN
问题 #1: 0.66 不是整数。 An Integer是一个整数,这是一个浮点数。
问题 #2:
JavaScript 中不能有以小数点开头的数字。
即使您将 parseInt
更改为 parseFloat
,结果仍然是 return 0.66。
你问的是不可能的,如果你想让一个数字以小数点开头,那么它必须是一个字符串。
我尝试了一个快速解决方案,您可以尝试这样做:
let a = 0.45;
// split on decimal, at index 1 you will find the number after decimal
let b = a.toString().split('.')[1];