CLN: Replace float64_t with int64_t in _ensure_components
- [x] passes `git diff upstream/master | flake8 --diff`

I would be surprised if this works
the issue is overflow on non 64bit platforms 
 ## [Current coverage](https://codecov.io/gh/pydata/pandas/pull/13673?src=pr) is **84.38%**

> Merging [#13673](https://codecov.io/gh/pydata/pandas/pull/13673?src=pr) into [master](https://codecov.io/gh/pydata/pandas/branch/master?src=pr) will increase coverage by **<.01%**

``` diff
@@             master     #13673   diff @@
==========================================
  Files           142        142          
  Lines         51223      51223          
  Methods           0          0          
  Messages          0          0          
  Branches          0          0          
==========================================
+ Hits          43223      43224     +1   
+ Misses         8000       7999     -1   
  Partials          0          0          
```

> Powered by [Codecov](https://codecov.io?src=pr). Last updated by [d7c028d...6854086](https://codecov.io/gh/pydata/pandas/compare/d7c028d4965932160fa3b69f56c716b1454c42a5...685408638107693e8693ab6e1db9f6b51bff4221?src=pr)
 I feel all number (`_d`, `_h`, or etc.) is smaller than `ivalue`(int64_t), so if problem happens on non 64bit platforms, float64_t does not solve problems.
 thanks!
