Class Float Number Methods Float new ^ smalltalk error: 'cannot create floats with new' ] Methods Float exp " return e raised to self " ^ <103 self> ] Methods Float printString ^ <101 self> ] Methods Float truncated | result f i | " truncate to an integer rounded towards zero" f <- self. result <- 0. [ i <- f integerPart. i > 0] whileTrue: [ result <- result + i. f <- f - i ]. ^ result ] Methods Float + value ^ value isFloat ifTrue: [ <110 self value> " floating add " ] ifFalse: [ super + value ] ] Methods Float = value ^ value isFloat ifTrue: [ <116 self value> ] ifFalse: [ super = value ] ] Methods Float - value ^ value isFloat ifTrue: [ <111 self value> " floating subtract " ] ifFalse: [ super - value ] ] Methods Float isFloat ^ true ] Methods Float generality " our numerical generality - used for mixed mode arithmetic" ^ 7 ] Methods Float * value ^ value isFloat ifTrue: [ <118 self value> ] ifFalse: [ super * value ] ] Methods Float < value ^ value isFloat ifTrue: [ <112 self value> " floating comparison " ] ifFalse: [ super < value ] ] Methods Float quo: value ^ (self / value) truncated ] Methods Float ln " natural log of self " ^ <102 self> ] Methods Float / value ^ value isFloat ifTrue: [ (value = 0.0) ifTrue: [ smalltalk error: 'float division by zero' ] ifFalse: [ <119 self value> ]] ifFalse: [ super / value ] ] Methods Float coerce: value " convert the value into a floating point number " ^ value asFloat ] Methods Float integerPart | i j | i <- <106 self>. j <- i basicAt: 2. i <- i basicAt: 1. j < 0 ifTrue: [ ^ 0 ] ifFalse: [ ^ i * (2 raisedTo: j)] ] Methods Float rounded ^ (self + 0.5) floor ]