Est-ce correct de convertir la chaîne en float avec deux décimales?Chaîne à flotter avec deux décimales en C#
string s1 = "9.09";
string s2= "99,09";
string s3= ",09";
ConvertToFloat(s1);
ConvertToFloat(s2);
ConvertToFloat(s3);
private float ConvertToFloat(string value)
{
float result;
decimal de= Convert.ToDecimal(value);
bool IsDecimalFormat = IsDecimal(de);
if (IsDecimalFormat)
{
result =Convert.ToSingle(value);
}
else
{
result = Convert.ToSingle(value)/100;
}
return result;
}
}
private bool IsDecimal(decimal myDec)
{
return (Decimal.Ceiling(myDec) > myDec) ? true : false;
}
Vous avez un mélange de "." et "," dans vos données d'échantillon. Voulez-vous que les deux soient considérés comme des points décimaux? Fondamentalement c'est une fonction très déroutante, retournant parfois 1/100ème de la valeur. En outre, si vous êtes intéressé par les décimales, vous devriez presque certainement utiliser 'decimal' partout plutôt que' float'. –
Je suppose que '/ 100' est destiné à soutenir l'internationalisation -' "99,09" '-> 9909 -> 99.09. Je suis assez sûr qu'il échoue pour l'entrée '" 99 "'. – Kobi