Number API Functions: Unterschied zwischen den Versionen

Aus expecco Wiki (Version 2.x)
Zur Navigation springen Zur Suche springen
Zeile 61: Zeile 61:
-100 // 3
-100 // 3
=> -34
=> -34

=== Trigonometric and Mathematical Functions ===
The usual operations are provided as unary messages to the number:
''aNumber'' '''sin''' => Number
''aNumber'' '''log''' => Number

=== Printing ===

Numbers can print themself on an output stream,
''aNumber'' '''printOn:''' ''aStream''
or convert themself to a string:
''aNumber'' '''printString''' => String

The above generate a standard format, which should fit most needs.
More control is available via the printf functions, which offer a range of options to fill left or right, to control printing of the sign and to fill with zeros.
<br>The printf:on: function:
''formatString'' '''printf:''' { ''aNumber'' } '''on:''' ''aStream''
takes an argument Vector as first Argument; thus, multiple values are printed as in the following example:
'%04x %3d %4.3f' printf:{ 123 . 4 . 3.14159 } on:Transcript
Individual conversions can be done with:
''aNumber'' '''printfPrintString:''' ''formatString'' => String

Version vom 20. Dezember 2019, 15:58 Uhr

This document lists most useful (and most often needed) functions. Be aware, that there are many more to be found in either the class references or via the builtin class browser.

Reference: Integer Float Fraction FixedPoint Complex which all inherit from Number

Back to Useful API Functions

Testing[Bearbeiten]

Check if number is not infinity and not NaN:

aNumber isFinite    => Boolean

Check if number is either positive infinity (INF) or negative infinity (-INF):

aNumber isInfinite  => Boolean

Check if number is NaN ("Not a Number"):

aNumber isNaN    => Boolean
Sign checks[Bearbeiten]
aNumber negative => Boolean

same as aNumber < 0

aNumber positive => Boolean

same as aNumber >= 0

aNumber strictlyPositive => Boolean

same as aNumber > 0

Misc Properties[Bearbeiten]
anInteger isPrime => Boolean

true if the number is a prime number

anInteger isPowerOf2  => Boolean

true if there exists an n, such that 2ˆn equals the number

anInteger isPowerOf:b => Boolean

true if there exists an n, such that bˆn equals the number

Queries[Bearbeiten]
anInteger nextPrime => anInteger
anInteger nextPowerOf2 => anInteger

Arithmetic[Bearbeiten]

The usual arithmetic operators.
Point right.png Notice, that they are evaluated left to right, without special precedences. Thus you should always use parentheses to group expressions when there are two or more operators in an arithmetic expression.

aNumber + aNumber  => Number
aNumber - aNumber  => Number
aNumber * aNumber  => Number
aNumber / aNumber  => Number

Truncated result (towards the next smaller integer i.e. towards negative infinity):

aNumber // aNumber  => Integer

Examples:

 100 // 3
 => 33
 -100 // 3
 => -34

Trigonometric and Mathematical Functions[Bearbeiten]

The usual operations are provided as unary messages to the number:

aNumber sin => Number
aNumber log => Number

Printing[Bearbeiten]

Numbers can print themself on an output stream,

aNumber printOn: aStream

or convert themself to a string:

aNumber printString => String

The above generate a standard format, which should fit most needs. More control is available via the printf functions, which offer a range of options to fill left or right, to control printing of the sign and to fill with zeros.
The printf:on: function:

formatString printf: { aNumber } on: aStream
takes an argument Vector as first Argument; thus, multiple values are printed as in the following example:
'%04x %3d %4.3f' printf:{ 123 . 4 . 3.14159 } on:Transcript

Individual conversions can be done with:

aNumber printfPrintString: formatString => String



Copyright © 2014-2024 eXept Software AG