3 ms·
> From 10000000 to 10_000_000 is such a readability improvement and should be no-cost. 1e7
by mseepgood 7y ago
> From 10000000 to 10_000_000 is such a readability improvement and should be no-cost.
1e7
- lacampbell 7y agoMysterious hacker news downvoting! This my preferred way of writing numbers with lots of 0s as well.
- rbonvall 7y agoBut underscores also work for numbers that don't have lot of zeros. Compare: 12_345_678 1.2345678e7
- lacampbell 7y agogood point. Kind of realising how much of my daily work could use bytes as the main numeric type
- masklinn 7y ago> 1e7 Is a float literal.
- majewsky 7y agoNot in Go. Number literals don't have a type until they're assigned to a variable or used in a place that implies a type (e.g. a function argument). For example, the following is valid: var u uint32 = 10000000000.0 / 100000 even though 10000000000 overflows uint32 and it's also written like a floating-point literal.
- masklinn 7y ago> Not in Go. Yes in go. `var u = 1e7` gives a float. That means 1e7 is a float literal. You can coerce it to an integer by explicitly typing the target, but it's still a float literal.
- yencabulator 7y ago`1e7` is an untyped numeric constant with a default type of float64. https://blog.golang.org/constants https://blog.golang.org/constants https://golang.org/ref/spec#Constants https://golang.org/ref/spec#Constants