Analyser la chaîne décimale, les virgules et les points

Comment analyser la chaîne décimale de sorte qu'il pourrait fonctionner pour les deux formats - w/virgules et les points?

[Fact]
public void foo(){
  var a="1,1";
  var b="1.1";
  Assert.Equal(Parse(a),Parse(b));
}
private decimal Parse(string s){
  return decimal.Parse(s,NumberStyles.Any,
    CultureInfo.InvariantCulture);
}

de sortie:

Test 'Unit.Sandbox.foo' failed: Assert.Equal() Failure
Expected: 11
Actual:   1,1
Même si il analysé, pourquoi auraient-ils être égaux? L'une est de 1 point 1, l'autre est onze...? (puisque vous déclarez expressément l'invariant de la culture)
Gravel, je ne suis pas sûr que je Vous ai bien compris. De toute façon le but est d'écrire analyser la fonction de sorte qu'il serait compris les deux formats. Affirmer reflète ce que je suis en train de réaliser.
Je crois que la Marque faisait allusion à l'ambiguïté de l'appui tant du point décimal et le séparateur des milliers à l'aide de différentes cultures. Mais je crois que vous ne sont concernés dans l'analyse des points décimaux?
J' comprendre, mais sont tous les deux des numéros valides dans les deux ".=point" et un ",=point" de la culture. Comment vous proposez-vous de comprendre ce qui est prévu? Dans le "1,1" vous pourriez peut-être faux, mais que dire de "1.001" vs "1,001" ? Sont-ils les mêmes? Indépendamment du fait que vous utilisez , ou . en tant que "point", qui est l'un des mille et un, et l'autre est l'un virgule zéro zéro un.
cela me rappelle "l'Humanité à l'échec" post de blog de Jon bit.ly/kQUJcR T_T

OriginalL'auteur Arnis Lapsa | 2011-05-02