[Jython-checkins] jython: Add is_integer to float and handle pow NaN better.
frank.wierzbicki
jython-checkins at python.org
Tue Jan 8 00:14:38 CET 2013
http://hg.python.org/jython/rev/0ad77049c023
changeset: 6940:0ad77049c023
user: Frank Wierzbicki <fwierzbicki at gmail.com>
date: Mon Jan 07 15:14:29 2013 -0800
summary:
Add is_integer to float and handle pow NaN better.
files:
src/org/python/core/PyFloat.java | 20 ++++++++++++++++++--
1 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/src/org/python/core/PyFloat.java b/src/org/python/core/PyFloat.java
--- a/src/org/python/core/PyFloat.java
+++ b/src/org/python/core/PyFloat.java
@@ -733,8 +733,12 @@
return new PyFloat(0);
}
- if ((value == 1.0) && Double.isNaN(iw)) {
- return new PyFloat(1.0);
+ if (Double.isNaN(iw)) {
+ if (value == 1.0) {
+ return new PyFloat(1.0);
+ } else {
+ return new PyFloat(Double.NaN);
+ }
}
if (value < 0 && iw != Math.floor(iw)) {
@@ -848,6 +852,18 @@
return this;
}
+ public boolean is_integer() {
+ return float_is_integer();
+ }
+
+ @ExposedMethod(doc = BuiltinDocs.float_is_integer_doc)
+ final boolean float_is_integer() {
+ if (Double.isInfinite(value)) {
+ return false;
+ }
+ return Math.floor(value) == value;
+ }
+
@Override
public PyComplex __complex__() {
return new PyComplex(getValue(), 0.);
--
Repository URL: http://hg.python.org/jython
More information about the Jython-checkins
mailing list