javascriptnumbersdecimal-point

remove leading 0 before decimal point and return as a number- javascript


Problem

I need to return a number in the format of .66 (from an entered value which includes the leading zero, e.g. 0.66)

It must be returned as an integer with the decimal point as the first character.

what method in JavaScript can help me do this?

What have I tried?

I've tried converting it toString() and back to parseInt() but including the decimal point makes it return NaN.

I've tried adding various radix (10, 16) to my parseInt() - also unsuccessful

Sample Code

const value = 0.66;

if(value < 1) {
    let str = value.toString().replace(/^0+/, '');
    // correctly gets '.66'
    return parseInt(str)
}

//result NaN

Expectations

I expect an output of the value with the leading 0 removed e.g. 0.45 --> .45 or 0.879 --> .879

Current Observations

Output is NaN


Solution

  • Issue #1: 0.66 is not an Integer. An Integer is a whole number, this is a floating-point number.

    Issue #2: You cannot have a number in JavaScript that starts with a decimal point. Even if you change your parseInt to be parseFloat, it will still return 0.66 as a result.

    What you're asking just isn't possible, if you want a number to start with a decimal point then it has to be a string.