diff --git a/src/PIL/Image.py b/src/PIL/Image.py
--- a/src/PIL/Image.py
+++ b/src/PIL/Image.py
@@ -1720,6 +1720,8 @@ def point(self, data):
             # FIXME: _imaging returns a confusing error message for this case
             raise ValueError("point operation not supported for this mode")
 
+        if mode != "F":
+            lut = [round(i) for i in lut]
         return self._new(self.im.point(lut, mode))
 
     def putalpha(self, alpha):

diff --git a/Tests/test_image_point.py b/Tests/test_image_point.py
--- a/Tests/test_image_point.py
+++ b/Tests/test_image_point.py
@@ -10,6 +10,7 @@ def test_sanity():
         im.point(list(range(256)))
     im.point(list(range(256)) * 3)
     im.point(lambda x: x)
+    im.point(lambda x: x * 1.2)
 
     im = im.convert("I")
     with pytest.raises(ValueError):

'float' object cannot be interpreted as an integer exception when applying point transforms
### What did you do?
Following the docs to apply point transforms:
https://pillow.readthedocs.io/en/stable/handbook/tutorial.html?highlight=.point(#applying-point-transforms

### What actually happened?
The following exception was raised: `'float' object cannot be interpreted as an integer`.

### What are your OS, Python and Pillow versions?

* OS: Windows 11 Pro (22000.556)
* Python: 3.10.4 (packaged by conda-forge)
* Pillow: 9.1.0

Code to reproduce
```python
from PIL import Image

image = Image.open(image_path).convert('RGBA')
alpha_channel = image.getchannel('A')
image.putalpha(alpha_channel.point(lambda x: x * 0.5))
```

With Pillow 8.3.2 and Python 3.8, the above code worked well.

Edit: I've tested Pillow 9.1.0 with Python 3.9.12 and it works fine, so it seems to be an issue related to Python 3.10.x

Thanks. This would be because of https://docs.python.org/3/c-api/long.html#c.PyLong_AsLong
> Changed in version 3.10: This function will no longer use `__int__()`.

I've created PR #6188 to resolve this.