Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Random number between two decimals in Swift

Tags:

random

ios

swift

I'd like to get a random number between two small decimal numbers.

Between maybe 0.8 and 1.3.

var duration = CGFloat(arc4random() % 0.8) / 1.3

or

var duration = CGFloat(arc4random() % 0.5) + 0.8

Thanks!

like image 492
SirRupertIII Avatar asked Sep 25 '14 02:09

SirRupertIII


People also ask

How do you generate random numbers in Swift?

To generate a random number in Swift, use Int. random() function. Int. random() returns a number, that is randomly selected, in the given range.

How do I set precision in Swift?

If you'd like to interpolate a float or a double with a String in Swift, use the %f String format specifier with appropriate number in order to specify floating point precision. Note that Swift automatically rounds the value for you.


1 Answers

Swift 5:

Using random(in:) which returns a random value within the specified range:

var duration = CGFloat.random(in: 0.8 ... 1.3)

Per Apple:

The random() static method chooses a random value from a continuous uniform distribution in range, and then converts that value to the nearest representable value in this type.

See random(in: using: ) to specify a random generator other than the default.

like image 176
Marcy Avatar answered Oct 16 '22 18:10

Marcy