Fix integers operation results being downcasted to floating point
Co-authored-by: manyrandomthings <42223559+manyrandomthings@users.noreply.github.com>
This commit is contained in:
1 parent
a8ead7ff24
commit
5759e23794
2 files changed
+6
-7
No files matched your search
@@ -55,7 +55,7 @@ public class Sys
|
|||||||
{
|
{
|
||||||
if (v instanceof final NumericValue num)
|
if (v instanceof final NumericValue num)
|
||||||
{
|
{
|
||||||
return new NumericValue(num.isInteger() ? num.getLong() : num.getDouble());
|
return num.clone();
|
||||||
}
|
}
|
||||||
if (v instanceof ListValue || v instanceof MapValue)
|
if (v instanceof ListValue || v instanceof MapValue)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -131,7 +131,7 @@ public class NumericValue extends Value
|
|||||||
{ // TODO test if definintn add(NumericVlaue) woud solve the casting
|
{ // TODO test if definintn add(NumericVlaue) woud solve the casting
|
||||||
if (v instanceof final NumericValue nv)
|
if (v instanceof final NumericValue nv)
|
||||||
{
|
{
|
||||||
return new NumericValue(longValue != null && nv.longValue != null ? (longValue + nv.longValue) : (value + nv.value));
|
return longValue != null && nv.longValue != null ? new NumericValue(longValue + nv.longValue) : new NumericValue(value + nv.value);
|
||||||
}
|
}
|
||||||
return super.add(v);
|
return super.add(v);
|
||||||
}
|
}
|
||||||
@@ -141,7 +141,7 @@ public class NumericValue extends Value
|
|||||||
{ // TODO test if definintn add(NumericVlaue) woud solve the casting
|
{ // TODO test if definintn add(NumericVlaue) woud solve the casting
|
||||||
if (v instanceof final NumericValue nv)
|
if (v instanceof final NumericValue nv)
|
||||||
{
|
{
|
||||||
return new NumericValue(longValue != null && nv.longValue != null ? (longValue - nv.longValue) : (value - nv.value));
|
return longValue != null && nv.longValue != null ? new NumericValue(longValue - nv.longValue) : new NumericValue(value - nv.value);
|
||||||
}
|
}
|
||||||
return super.subtract(v);
|
return super.subtract(v);
|
||||||
}
|
}
|
||||||
@@ -151,7 +151,7 @@ public class NumericValue extends Value
|
|||||||
{
|
{
|
||||||
if (v instanceof final NumericValue nv)
|
if (v instanceof final NumericValue nv)
|
||||||
{
|
{
|
||||||
return new NumericValue(longValue != null && nv.longValue != null ? (longValue * nv.longValue) : (value * nv.value));
|
return longValue != null && nv.longValue != null ? new NumericValue(longValue * nv.longValue) : new NumericValue(value * nv.value);
|
||||||
}
|
}
|
||||||
return v instanceof ListValue ? v.multiply(this) : new StringValue(StringUtils.repeat(v.getString(), (int) getLong()));
|
return v instanceof ListValue ? v.multiply(this) : new StringValue(StringUtils.repeat(v.getString(), (int) getLong()));
|
||||||
}
|
}
|
||||||
@@ -303,13 +303,12 @@ public class NumericValue extends Value
|
|||||||
{
|
{
|
||||||
return new JsonPrimitive(longValue);
|
return new JsonPrimitive(longValue);
|
||||||
}
|
}
|
||||||
long lv = getLong();
|
return isInteger() ? new JsonPrimitive(getLong()) : new JsonPrimitive(getDouble());
|
||||||
return new JsonPrimitive(value == lv ? getLong() : value);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public NumericValue opposite()
|
public NumericValue opposite()
|
||||||
{
|
{
|
||||||
return new NumericValue(longValue != null ? -longValue : -value);
|
return longValue != null ? new NumericValue(-longValue) : new NumericValue(-value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isInteger()
|
public boolean isInteger()
|
||||||
|
|||||||
Reference in new issue
Block a user