<?xml version="1.0" encoding="UTF-8" ?>
<class name="int" category="Built-In Types" version="3.1">
	<brief_description>
		Integer built-in type.
	</brief_description>
	<description>
		Signed 64-bit integer type.
		It can take values in the interval [code][-2^63, 2^63 - 1][/code], i.e. [code][-9223372036854775808, 9223372036854775807][/code]. Exceeding those bounds will wrap around.
		[code]int[/code] is a [Variant] type, and will thus be used when assigning an integer value to a [Variant]. It can also be enforced with the [code]: int[/code] type hint.
		[codeblock]
		var my_variant = 0    # int, value 0
		my_variant += 4.2     # float, value 4.2
		var my_int: int = 1   # int, value 1
		my_int = 4.2          # int, value 4, the right value is implicitly cast to int
		my_int = int("6.7")   # int, value 6, the String is explicitly cast with [method int]

		var max_int = 9223372036854775807
		print(max_int)        # 9223372036854775807, OK
		max_int += 1
		print(max_int)        # -9223372036854775808, we overflowed and wrapped around
		[/codeblock]
	</description>
	<tutorials>
	</tutorials>
	<demos>
	</demos>
	<methods>
		<method name="int">
			<return type="int">
			</return>
			<argument index="0" name="from" type="bool">
			</argument>
			<description>
				Cast a [bool] value to an integer value, [code]int(true)[/code] will be equals to 1 and [code]int(false)[/code] will be equals to 0.
			</description>
		</method>
		<method name="int">
			<return type="int">
			</return>
			<argument index="0" name="from" type="float">
			</argument>
			<description>
				Cast a float value to an integer value, this method simply removes the number fractions, so for example [code]int(2.7)[/code] will be equals to 2, [code]int(.1)[/code] will be equals to 0 and [code]int(-2.7)[/code] will be equals to -2.
			</description>
		</method>
		<method name="int">
			<return type="int">
			</return>
			<argument index="0" name="from" type="String">
			</argument>
			<description>
				Cast a [String] value to an integer value, this method is an integer parser from a string, so calling this method with an invalid integer string will return 0, a valid string will be something like [code]'1.7'[/code]. This method will ignore all non-number characters, so calling [code]int('1e3')[/code] will return 13.
			</description>
		</method>
	</methods>
	<constants>
	</constants>
</class>