1
0
mirror of https://github.com/DanilaFe/abacus synced 2026-01-28 01:25:19 +00:00

Change ceiling and floor to return NumberInterface. Add fractional part function. Add intValue function. Change StandardPlugin correspondingly.

This commit is contained in:
Arthur Drobot
2017-08-02 12:00:56 -07:00
parent 52fbfd5134
commit 601c4fea55
4 changed files with 60 additions and 12 deletions

View File

@@ -96,13 +96,38 @@ public class PreciseNumber implements NumberInterface {
}
@Override
public int ceiling() {
return (int) Math.ceil(value.doubleValue());
public NumberInterface ceiling() {
String str = value.toPlainString();
int decimalIndex = str.indexOf('.');
if(decimalIndex != -1){
return this.floor().add(ONE);
}
return this;
}
@Override
public int floor() {
return (int) Math.floor(value.doubleValue());
public NumberInterface floor() {
String str = value.toPlainString();
int decimalIndex = str.indexOf('.');
if(decimalIndex != -1){
return new PreciseNumber(str.substring(0, decimalIndex));
}
return this;
}
@Override
public NumberInterface fractionalPart() {
String str = value.toPlainString();
int decimalIndex = str.indexOf('.');
if(decimalIndex != -1){
return new PreciseNumber(str.substring(decimalIndex + 1));
}
return ZERO;
}
@Override
public int intValue() {
return value.intValue();
}
@Override