You have a range of values from -0.369288057 to 0.604043365, thus a difference of 0.973331422. You have a color ramp red-white-black and the "middle" value (white) is set to the middle of these values, thus at 0.117377654 - but you want it at 0. So your white value must be shifted to the left. To get the exact position, calculate the percentage of the value 0 in the range of your min/max values: (0-min) / (max-min) * 100 = 37.94%. Thus set the marker for the withe color to this value.
Apart from this, see also this solution: https://gis.stackexchange.com/a/385536/88814