I am wondering how I can convert 1,000,000 to 1.0E6 in JavaScript.
I'd like the complete opposite of the parseInt function?
Many thanks!
Use toExponential then modify the string as needed:
(1000000).toExponential()
"1e+6"
1000000 and 1.0e6 is identically notation in javascript. Function parseInt(string[, radix])
simply convert string to number by radix.
For back convert number to string you can use intValue.toString(radix)
var x = 1200000;
var val = x.toExponential();
var val = val.replace("+", "");
alert(val);
Related
I am trying to parse a hex value to decode a card
The hex data I receive from the card is f8b2d501f8ff12e0056281ed55
First I am converting this to an integer with parseInt()
var parseData = parseInt('f8b2d501f8ff12e0056281ed55', 16);
The value recieved is 1.9703930145800871e+31
When I try to decode this using the bitwise operator in Javascript
var cardNumber = ((parseData & 0xFFFFF) >> 1).toString();
I received a 0 value.
What am I doing wrong here, how can I parse the value of such large integer number?
There are two ways to do it:
First, notice that & 0xFFFFF operation in your code is just equivalent to getting a substring of a string (the last 5 characters).
So, you can just do a substring from the end of your number, and then do the rest:
var data = 'b543e1987aac6762f22ccaadd';
var substring = data.substr(-5);
var parseData = parseInt(substring, 16);
var cardNumber = ((parseData & 0xFFFFF) >> 1).toString();
document.write(cardNumber);
The second way is to use any big integer library, which I recommend to you if you do any operations on the large integers.
Since the number integer is so big you should use any bigNum library for js.
I recommend BigInteger, since you are working only with integers and it supports bitwise operations, however you can also check this answer for more options.
This question already has answers here:
Javascript: Converting String to Number?
(4 answers)
Closed 4 years ago.
How to convert "4,250,000.40" to 4,250,000.40 that is converting string to number by remaining the commas and dots? using JavaScript
You can use parseFloat(str) to convert a string to a number, but first you need to remove the commas from the string, as parseFloat doesn't work for numbers with commas in them.
parseFloat(str.replace(/,/g, ""));
var str = "4,250,000.40";
str = str.replace(/\,/g, "")
console.log(str)
console.log(parseFloat(str).toFixed(2))//to always show 2 decimal places
You can't directly convert "4,250,000.40" to a number in vanilla JS, let alone preserve commas. 4,250,000.40 is not a valid number in JavaScript, because a comma is an illegal character in a Number.
you can use regex to delete commas, then use Number.parseFloat(), but then number formatting is lost. Instead, I suggest using a number formatting library like Numeral.js. To convert "4,250,000.40" to a numeral you'd use:
const num = numeral("4,250,000.40");
you can reformat your number using the format() method like so:
const formatedNum = numeral("4,250,000.40").format('0,0.00');
console.log(formatedNum); // "4,250,000.40"
Here's a working example, including more cool formatting:
const num = numeral("4,250,000.40");
const formatedNum = num.format('0,0[.]00');
console.log(formatedNum); // "4,250,000.40"
// you can format number as money
console.log(num.format('$0,0[.]00')); // $4,250,000.40
// you can use abbreviations like k or m
console.log(num.format('$0.00a')); // $4.25m
// you can use financial notation
console.log(numeral("-4,250,000.40").format('($0,0)')); // ($4,250,000)
<script src="//cdnjs.cloudflare.com/ajax/libs/numeral.js/2.0.6/numeral.min.js"></script>
There are a few Javascript functions available to convert anything into its equivalent number. Number() operates on an Object, valueOf(), parseFloat, parseInt() are also available.
I have an array which stores numbers 0-9 and decimal point, the elements of the array taken together represents a number. What is the best way to convert this array into a number, whole or fractional?
EDIT: Apologies if I were not clear before. The array, holding the 0-9 characters and possibly a decimal point, could represent either a whole number(without the decimal obviously) or a fractional number. So please suggest something that works for both cases. Thanks.
Try this
var a = [1,2,3,".",2,3];
var num = +a.join("");
What is the best way to convert this array into a number, whole or fractional?
Firstly to combine your array elements you should use Array.join().
You will then have a concatenated variable of your values and decimal. To convert this to a whole number, use parseInt(), and to a floating point number use parseFloat(). You can use the unary + operator (which acts similarly to parseFloat), however in my opinion it is not the best choice semantically here, as you seem to want a specific type of number returned.
Example:
var arr = ['1','.','9','1'];
var concat = arr.join();
var whole = parseInt(concat);
var floating = parseFloat(concat);
Also, parseInt will trim the decimal portion of your number, so if you need rounding you can use:
var rounded = Math.round(parseFloat(concat));
You could use the split property of the string. It splits all the characters into an zero based array.
var charSplits = "this is getting split.";
var splitArr = charSplits.split();
Console.log(splitArr);
// this returns i
Console.log(splitArr[2]);
I have a string : "-10.456"
I want to convert it to -10.465 in decimal (using JavaScript) so that I can compare for greater than or lesser than with another decimal number.
Regards.
The parseInt function can be used to parse strings to integers and uses this format: parseInt(string, radix);
Ex: parseInt("-10.465", 10); returns -10
To parse floating point numbers, you use parseFloat, formatted like parseFloat(string)
Ex: parseFloat("-10.465"); returns -10.465
Simply pass it to the Number function:
var num = Number(str);
Here are two simple ways to do this if the variable str = "-10.123":
#1
str = str*1;
#2
str = Number(str);
Both ways now contain a JavaScript number primitive now. Hope this helps!
In javascript, you can compare mixed types. So, this works:
var x = "-10.456";
var y = 5.5;
alert(x < y) // true
alert(x > y) // false
the shortcut is this:
"-3.30" <--- the number in string form
+"-3.30" <----Add plus sign
-3.3 <----- Number in number type.
I have a variable
var fval = 4;
now I want out put as 4.00
JavaScript only has a Number type that stores floating point values.
There is no int.
Edit:
If you want to format the number as a string with two digits after the decimal point use:
(4).toFixed(2)
toFixed() method formats a number using fixed-point notation. Read MDN Web Docs for full reference.
var fval = 4;
console.log(fval.toFixed(2)); // prints 4.00
var fval = 4;
var fvalfloat = parseFloat(fval).fixed(2)