 <p>That is because <code>3,3</code> converted to a double using the <code>InvariantCulture</code> yields <code>33</code>. It does not make the output to become in the <code>InvariantCulture</code>, since the numeric data type double has nothing to do with a specific culture. Only the <em>textual representation</em> does.</p> <p>So <code>3,3</code> is not a valid value for a string to be converted to a double. It removes the <code>,</code> and converts to <code>33</code>. <code>3.3</code> would be a valid value to be converted to <code>3.3d</code>. So you have to use another culture, probably <code>it-IT</code> as in your debug view, to convert the value <code>3,3</code> to a <code>double</code> of <code>3.3d</code>.</p>