- Documentation
- Reference manual
- Built-in Predicates
- Arithmetic
- General purpose arithmetic
- Arithmetic Functions
- -/1
- +/1
- +/2
- -/2
- */2
- //2
- mod/2
- rem/2
- ///2
- div/2
- rdiv/2
- gcd/2
- lcm/2
- abs/1
- sign/1
- copysign/2
- nexttoward/2
- roundtoward/2
- max/2
- min/2
- ./2
- random/1
- random_float/0
- round/1
- integer/1
- float/1
- rational/1
- rationalize/1
- numerator/1
- denominator/1
- float_fractional_part/1
- float_integer_part/1
- truncate/1
- floor/1
- ceiling/1
- ceil/1
- >>/2
- <</2
- \//2
- /\/2
- xor/2
- \/1
- sqrt/1
- sin/1
- cos/1
- tan/1
- asin/1
- acos/1
- atan/1
- atan2/2
- atan/2
- sinh/1
- cosh/1
- tanh/1
- asinh/1
- acosh/1
- atanh/1
- log/1
- log10/1
- exp/1
- **/2
- ^/2
- powm/3
- lgamma/1
- erf/1
- erfc/1
- pi/0
- e/0
- epsilon/0
- inf/0
- nan/0
- cputime/0
- eval/1
- msb/1
- lsb/1
- popcount/1
- getbit/2
- Arithmetic Functions
- General purpose arithmetic
- Arithmetic
- Built-in Predicates
- Packages
- Reference manual
Availability:Arithmetic function (see is/2)
rational(0.1)
. The function rationalize/1
remedies this. See section
4.27.2.2 for more information on rational number support.
?- A is rational(0.25). A is 1 rdiv 4 ?- A is rational(0.1). A = 3602879701896397 rdiv 36028797018963968
For every normal float X the relation
X
rational(X) holds.
=:=
This function raises an evaluation_error(undefined)
if Expr
is NaN and evaluation_error(rational_overflow)
if Expr
is Inf.