There are a few ways of doing this: var rounded = Math.floor(Number("97.654")) // other options are Math.ceil, Math.round Obviously, converting to a Number gives you a value that might be a float rather than an integer, so if you want an integer, you need to modify it. Since you want a primitive number rather than a Number wrapper object, make sure you don't put new in front of the Number function. It's more strict: if it doesn't understand the whole of the string than it returns NaN, so you can't use it for strings like 97px. This has different behavior to the parse methods (although it still ignores whitespace). I prefer to do this explicitly, var cast = Number("97") parseInt understands radixes up to base 36, in which case both upper and lower case letters are treated as equivalent.Ĭhanging the Type of a String to a NumberĪll of the other tricks mentioned above that don't use parseInt, involve implicitly coercing the string into a number. The standard actually changed with ECMAScript 5, so modern browsers no longer trigger octal when there's a leading 0 if no radix has been specified. The behaviour for hexadecimal is triggered by having the string start with 0x if no radix is specified, e.g., 0xff. In older browsers, if the string started with a 0, it would be interpreted as octal if the radix wasn't specified which took a lot of people by surprise. It's good practice to always specify the radix as the second argument. Here's an example of it doing something different to what you want, and giving no indication that anything went wrong: var widgetsSold = parseInt("97,800", 10) // widgetsSold is now 97 Whitespace at the beginning of the string is ignored. Parsing will stop silently if it hits a character it doesn't recognise, which can be useful for parsing strings like "92px", but it's also somewhat dangerous, since it won't give you any kind of error on bad input, instead you'll get back NaN unless the string starts with a number. ParseInt and parseFloat are the two functions used for parsing strings to numbers. You can also do the same thing explicitly with the Number function. All of the tricks in the other answers (e.g., unary plus) involve implicitly coercing the type of the string to a number. One way is to parse it and the other way is to change its type to a Number. There are two main ways to convert a string to a number in JavaScript. Interestingly, Math.round (like Math.floor) will do a string to number conversion, so if you want the number rounded (or if you have an integer in the string), this is a great way, maybe my favorite: var round = Math.round If you're the type who forgets to put the radix in when you call parseInt, you can use parseFloat and round it however you like. Or, if you're going to be using Math.floor several times: var floor = Math.floor If your string is or might be a float and you want an integer: var x = Math.floor("1000.01") // floor() automatically converts string to number If your string is already in the form of an integer: var x = +"1000" So you get a decimal number even with a leading 0 and an old browser () parseInt() var x = parseInt("1000", 10) // You want to use radix 10 If that doesn't work for you, then there are the parseInt, unary plus, parseFloat with floor, and Math.round methods. convert m-d-y or m.d.The simplest way would be to use the native Number function: var x = Number("1000") * string $d various representations of date * Unsupported formats or invalid dates will generate an Exception * Changes PHP's default behaviour for dates with dashes or dots. * Accept dates in various m, d, y formats and return as Y-m-d Or, you can make a function to accept m-d-Y and output Y-m-d: /** convert m-d-y or m.d.y to m/d/y to avoid PHP parsing as d-m-Y (substr avoids microtime error) Public function _construct(string $time="now", DateTimeZone $timezone = null) * Quietly convert European format to American format If you wish to accept dates using American ordering (month, date, year) for European style formats (using dash or period as day, month, year) while still accepting other formats, you can extend the DateTime class: /**
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |