KMeans clustering with [0, 1]-entries feature vectors outputs centroids with entries outside [0, 1]

### Describe the bug

I have a dataset for clustering based on purchase months, available [here][1].  All feature vectors have entries which sum to 1. I did not expect to have centroids with the strict constraint of the unitary sum. However, they should (almost must) have entries between 0 and 1. According to the code I provide below, am I doing something weird or unexpected?

  [1]: https://www.dropbox.com/scl/fi/6pdss4c0q3fznlx4rqj23/product_data.csv?rlkey=0g4w3p59ngn04vdok8d3dtrdp&dl=0

### Steps/Code to Reproduce

```python
import pandas as pd
from os import getcwd
from sklearn.model_selection import train_test_split
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score


this_path = getcwd() + ''
filename = 'product_data.csv'

file_path = this_path + '/' + filename

df = pd.read_csv(file_path)

X = [list(group_df['months']) for _, group_df in df.groupby('product_id')]

# Assuming 'X' is your feature matrix

# Now, we have the following datasets:
# - X_train: Training features
# - X_val: Validation features
# - X_test: Test features
# - y_train: Training target (if applicable)
# - y_val: Validation target (if applicable)
# - y_test: Test target (if applicable)

test_size = 0.2
val_size = 0.2
train_size = 1-test_size

# Step 1: Train-test split
X_train, X_test = train_test_split(X, test_size=test_size, random_state=42)

# Step 2: Train-test split
X_train, X_val = train_test_split(X, test_size=val_size*train_size, random_state=42)

# Step 4: Model training
# Example with 3 clusters
kmeans = KMeans(n_clusters=3, n_init=10, random_state=42)  
kmeans.fit(X_train)

# Step 5: Model evaluation
train_silhouette_score = silhouette_score(X_train, kmeans.labels_)
test_silhouette_score = silhouette_score(X_test, kmeans.predict(X_test))
print(f"Train Silhouette Score: {train_silhouette_score}")
print(f"Test Silhouette Score: {test_silhouette_score}")
```

### Expected Results

A vector of centroids with entries between 0 and 1.

### Actual Results

Output:

```
Train Silhouette Score: 0.9338078873850575
Test Silhouette Score: 0.9395121235047589
[[4.82540373e-02 5.09614267e-02 5.32134245e-02 1.03824456e-01
  2.59398992e-01 2.38517675e-01 1.55693519e-01 1.44091717e-01
  6.28019827e-01 9.73606697e-01 1.16770379e+00 7.88320938e-01]
 [1.70372198e+00 2.09958955e+00 2.44583794e+00 2.37549850e+00
  5.03812743e+00 2.22023340e+01 4.85880994e+01 8.07960210e+01
  1.06434009e+02 1.07835291e+02 5.99978649e+01 1.34812973e+01]
 [2.40384615e-01 7.21153846e-01 4.81250000e-01 2.42427885e-01
  9.65685096e-01 2.40931490e+00 2.50085938e+01 7.47704928e+01
  1.04577344e+02 1.04365685e+02 5.25717548e+01 3.85576923e+02]]
```


### Versions

```shell
System:
    python: 3.8.10 (default, Nov 22 2023, 10:22:35)  [GCC 9.4.0]
executable: /usr/bin/python3
   machine: Linux-5.15.0-100-generic-x86_64-with-glibc2.29

Python dependencies:
      sklearn: 1.3.2
          pip: 24.0
   setuptools: 69.0.3
        numpy: 1.24.1
        scipy: 1.10.1
       Cython: None
       pandas: 2.0.3
   matplotlib: 3.7.5
       joblib: 1.3.2
threadpoolctl: 3.3.0

Built with OpenMP: True

threadpoolctl info:
       user_api: blas
   internal_api: openblas
    num_threads: 8
         prefix: libopenblas
       filepath: /home/brunolnetto/.local/lib/python3.8/site-packages/numpy.libs/libopenblas64_p-r0-15028c96.3.21.so
        version: 0.3.21
threading_layer: pthreads
   architecture: SkylakeX

       user_api: openmp
   internal_api: openmp
    num_threads: 8
         prefix: libgomp
       filepath: /home/brunolnetto/.local/lib/python3.8/site-packages/scikit_learn.libs/libgomp-a34b3233.so.1.0.0
        version: None

       user_api: blas
   internal_api: openblas
    num_threads: 8
         prefix: libopenblas
       filepath: /home/brunolnetto/.local/lib/python3.8/site-packages/scipy.libs/libopenblasp-r0-41284840.3.18.so
        version: 0.3.18
threading_layer: pthreads
   architecture: SkylakeX
```
```

COMMENT:
Looking only at `X_train`, your feature values are not in [0, 1]:

![image](https://github.com/scikit-learn/scikit-learn/assets/7454015/01ce2c5f-6feb-4f9f-acb0-d8766726559b)

Labels: Bug, Needs Triage