Firstly - I can't think of a scenario where anyone would want to know the weight of the water in the tank, surely that would only be used to calculate the volume, i.e. how much water is in the tank.
Secondly, using tank dimensions to calculate the volume (weight) is going to be only an approximation. Even the most skillful tank manufacturers can't get them perfect.
Thirdly, most dished-ends of tanks are not part of a sphere, very often they are made up in sections with different radii, a tighter one near where the dish-end joins the cylindrical sides. Sometimes even a cylindrical tank with multiple radii dished ends is set horizontally on a slight tilt as well. So you are going to need some very complex math to get a good volume figure.
So it is a complex issue, made even more complex if the tank has "inclusions", such as mixers, heat exchanger coils, etc.
And that is why most people who want an accurate tank contents choose to use load cells of the tank legs, and measure the contents by weight. A simple conversion to volume is then done, adjusting for density if required.
Sometimes the contents of external pipework/heat-exchangers etc. must also be included as tank contents, making it even more complex, so another option is to use a level sensor in the tank, but then to get the volume from a look-up, or dip table.
Interpolating between "above" and "below" look-ups is often done, and the more look-ups or dips in the table the better. Obviously, the dip-table has to be created, usually by filling progressively using a certified flow-meter, and recording the level at known volumes.