text: Title: [Bug]: `ivy.vector_norm` and `ivy.lgamma` when backend=numpy return rounded values
  Body: ### Bug Explanation
  
  ```shell
  > python -c "import ivy; ivy.set_backend('numpy'); print(ivy.lgamma(5)); print(ivy.lgamma(5.))"
  ivy.array(3)
  ivy.array(3.1780539)
  > python -c "import ivy; ivy.set_backend('numpy'); print(ivy.vector_norm([1, 1])); print(ivy.vector_norm([1., 1.]))"
  ivy.array(1)
  ivy.array(1.4142135)
  ```
  
  https://data-apis.org/array-api/latest/extensions/generated/array_api.linalg.vector_norm.html
  
  According to array-api, there is no specified behavior when a non-floating point type is given for `vector_norm`, but I would like to suggest, with all due respect, to stop this casting or to output an error, for the following reasons. (For `lgamma`, not even defined in array-api.)
  
  - There are very limited situations where such behavior is needed.
  - It does not match the behavior of other functions in numpy; `np.sin(1)` returns `0.8414709848078965` instead of `0`.
  - This behavior can be easily achieved by `ivy.astype(ivy.lgamma(x), dtype=x.dtype)` 
  - Package maintainers using ivy need to worry about the type of input, and casts need to be made.
  
  Thanks for this great project anyway.
  
  ### Steps to Reproduce Bug
  
  ```shell
  python -c "import ivy; ivy.set_backend('numpy'); print(ivy.lgamma(5)); print(ivy.lgamma(5.))"
  python -c "import ivy; ivy.set_backend('numpy'); print(ivy.vector_norm([1, 1])); print(ivy.vector_norm([1., 1.]))"
  ```
  
  ### Environment
  
  NixOS 24.05, Python 3.11
  
  ### Ivy Version
  
  1.0.0.1
  
  ### Backend
  
  - [X] NumPy
  - [ ] TensorFlow
  - [ ] PyTorch
  - [ ] JAX
  
  ### Device
  
  CPU