Implement float is_integer method#112
Implement float is_integer method#112corona10 merged 3 commits intogo-python:masterfrom DoDaek:issue-111
Conversation
|
In Go: 1.9.x, there is no math.Round method |
|
we could drop support for |
|
please rebase on top of the latest |
Codecov Report
@@ Coverage Diff @@
## master #112 +/- ##
==========================================
+ Coverage 72.54% 72.61% +0.06%
==========================================
Files 60 60
Lines 11887 11895 +8
==========================================
+ Hits 8623 8637 +14
+ Misses 2739 2731 -8
- Partials 525 527 +2
Continue to review full report at Codecov.
|
py/float.go
Outdated
| return nil, err | ||
| } | ||
| b := math.Abs(f - math.Round(f)) | ||
| return NewBool(b < math.SmallestNonzeroFloat64), nil; |
There was a problem hiding this comment.
Is there any reason to use this logic?
CPython check the float is an integer by using the floor API.
o = (floor(x) == x) ? Py_True : Py_False;There was a problem hiding this comment.
Calculating the difference between rounded value and original value.
If the difference is less than the minimum value of float64, I think that it would be an integer.
I'll check the Cpython and then fix that part by using floor API.
There was a problem hiding this comment.
py/float.go
Outdated
| b := math.Abs(f - math.Round(f)) | ||
| return NewBool(b < math.SmallestNonzeroFloat64), nil; | ||
| } | ||
| return nil, AttributeError |
There was a problem hiding this comment.
return nil, cantConvert(a, "float")might be better
There was a problem hiding this comment.
I'll change that part with cantConvert method.
py/float.go
Outdated
| f, err := FloatAsFloat64(a) | ||
| if err != nil { | ||
| return nil, err | ||
| f, _ := FloatAsFloat64(a) |
There was a problem hiding this comment.
Please return nil, err when FloatAsFloat64 return error
There was a problem hiding this comment.
Ok, I'll change that.
py/float.go
Outdated
| return False, nil | ||
| } | ||
| return nil, AttributeError | ||
| _, e := cantConvert(self, "float") |
There was a problem hiding this comment.
Please return cantConvert directly
There was a problem hiding this comment.
How do I use the second return value directly?
Sorry, I'm looking for that. But I can't find any information.
py/float.go
Outdated
| } | ||
| return False, nil | ||
| } | ||
| _, e := cantConvert(self, "float") |
There was a problem hiding this comment.
| _, e := cantConvert(self, "float") | |
| return cantConvert(self, "float") |
There was a problem hiding this comment.
Thanks for helping me out.
I couldn't think so....
ISSUE : #111