# TI-BASIC:Fpart

**Command Summary**

Returns the fractional part of a value.

**Command Syntax**

fPart(*value*)

**Menu Location**

Press:

- MATH to access the Math menu.
- RIGHT to access the NUM submenu.
- 4 to select fPart(, or use arrows.

TI-83/84/+/SE

1 byte

fPart(*value*) returns the fractional part of *value*. Also works on complex numbers, lists and matrices.

fPart(5.32) .32 fPart(4/5) .8 fPart(‾5.32) ‾.32 fPart(‾4/5) ‾.8

# Advanced Uses

fPart(, along with Int( or IPart(, can be used for integer Compression.

Also, fPart( is an easy way to find A mod B (the positive remainder when A is divided by B).

:B(A<0)+iPart(BfPart(A/B))

If A is guaranteed to be positive, the following shorter code can be used, omitting B(A<0):

:iPart(BfPart(A/B))

Finally, the easiest way to check if a number is a whole number is not(fPart(X:

:If not(fPart(X:Then : // X is an integer :Else : // X is not an integer :End

You can use this, for example, to check if a number is divisible by another: if X is divisible by N, then X/N is a whole number. This is useful when you want to find the factors of a number. Warning: when storing values with repeating decimals and later multiplying them to see if a number makes it an integer it can return a value of 1 or -1 instead of 0 even if it is an integer. Example: if you store 1/3 as X and then do fpart(3x) it will return 1 instead of 0. This is because fpart(.999...) results in .999... and then rounds to 1 when displaying rather than rounding to 1.0 and then displaying the fpart( as 0.

# Optimization

Often you want to find the value of a-1 mod b -- this occurs, for example, in movement routines with wraparound. However, the problem is that if a=0, a-1 will be negative. Rather than use the longer version of the modulo routine, you might replace subtracting 1 with adding (b-1). This will have the same result, but without sign problems.