C # float.tryparse pour la Culture française
j'ai une entrée utilisateur qui peut contenir des valeurs float allant de: 3.06 ou 3,06 La culture nous sommes français et, ainsi, lorsque l'utilisateur entrées 3.06 et je lance un flotteur.tryParse sur cette valeur il ne se convertit pas en 3.06 dans une nouvelle variable (type float)
// inputUsedAmount.Value from UI is : 3.06
float usedAmount = 0.0f;
float.TryParse(inputUsedAmount.Value, out usedAmount);
// returns false
je peux tout simplement faire un remplacement sur le montant saisi à partir de l'INTERFACE utilisateur à partir de "."à",", mais y a-t-il une façon gracieuse/meilleure de le faire à travers la Culture ? Merci
10
demandé sur
Murtaza Mandvi
2010-04-27 20:02:10
3 réponses
Vous pouvez utiliser le surcharge qui prend un format de fournisseur. Vous pouvez passer à travers un français de la culture info:
string value;
NumberStyles style;
CultureInfo culture;
double number;
value = "1345,978";
style = NumberStyles.AllowDecimalPoint;
culture = CultureInfo.CreateSpecificCulture("fr-FR");
if (Double.TryParse(value, style, culture, out number))
Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
Console.WriteLine("Unable to convert '{0}'.", value);
// Displays:
// Converted '1345,978' to 1345.978.
14
répondu
Oded
2010-04-27 16:07:57
float usedAmount;
// try parsing with "fr-FR" first
bool success = float.TryParse(inputUsedAmount.Value,
NumberStyles.Float | NumberStyles.AllowThousands,
CultureInfo.GetCultureInfo("fr-FR"),
out usedAmount);
if (!success)
{
// parsing with "fr-FR" failed so try parsing with InvariantCulture
success = float.TryParse(inputUsedAmount.Value,
NumberStyles.Float | NumberStyles.AllowThousands,
CultureInfo.InvariantCulture,
out usedAmount);
}
if (!success)
{
// parsing failed with both "fr-FR" and InvariantCulture
}
5
répondu
LukeH
2011-07-11 09:29:58
vous pouvez passer la culture à l'intérieur TryParse
méthode:
public static bool TryParse(string s, NumberStyles style, IFormatProvider provider, out float result);
1
répondu
Andrew Bezzub
2010-04-27 16:03:58