Just to show what I've got going on over here... First
without using the invariant on the returned decimal parse after expression evaluation (v1.7.2.4 and v1.7.2):
First just straight away (default culture):
{STATE_UICULTURE}: en-US
{STATE_CULTURE}: en-US
{EXP:50 * 0.5}: 25
Which is what I would expect to see, since en-US uses '.' for decimal separators.
Then, I set the culture on the thread to German:
{STATE_UICULTURE}: de-DE
{STATE_CULTURE}: de-DE
{EXP:50 * 0.5}: 250
Which is a problem, as the expression parser's output is ONLY with the invariant culture (no ability to change this), and since the returned parsed decimal is using the local culture, the, '.' generated by the expression parser gets thrown out and you end up with 250 instead of 25.0.
So, in v1.7.2.3, I instructed the decimal parser to use the invariant culture:
Default culture:
{STATE_UICULTURE}: en-US
{STATE_CULTURE}: en-US
{EXP:50 * 0.5}: 25
Still good.
German:
{STATE_UICULTURE}: de-DE
{STATE_CULTURE}: de-DE
{EXP:50 * 0.5}: 25
Which seems solved to me. Pfeil says that it's totally broken for him that way, so I reverted to whatever was in v1.7.2 (which is now v1.7.2.4).
@BlackJack - I put v1.7.2.5 out in unofficial for you to try all of this again if you would:
http://www.voiceattack.com/unofficialWhat you provided was thorough, so, thank you.
@Pfeil - can you tell me what your {STATE_UICULTURE} and {STATE_CULTURE} tokens resolve to? You can PM if you want. Also, that unofficial build will not work for you as it's just as it was in v1.7.2.3. If you want to try both v1.7.2.4 and v1.7.2.5 and see what comes back that would be cool too o_O
Thanks to all for your work on this. I'm really kind of at a loss, actually. It should be rather simple: Put in numbers with '.', parse with, '.', return with, '.'.
Edit - Now I'm wondering if it's not just the parser(s) at this point, but rather the value that is ultimately rendered by a token, which is a string that has something to do with this. Looking into that as well.