Je convertis une chaîne comme "41.00027357629127", et j'utilise;
Convert.ToSingle("41.00027357629127");
ou
float.Parse("41.00027357629127");
Ces méthodes renvoient 4.10002732E + 15 .
Quand je passe au flottant, je veux "41.00027357629127". Cette chaîne doit être la même ...
Réponses:
Les paramètres régionaux de votre thread sont définis sur un dans lequel la marque décimale est "," au lieu de ".".
Essayez d'utiliser ceci:
Notez, cependant, qu'un flottant ne peut pas contenir autant de chiffres de précision. Vous devrez utiliser double ou Decimal pour ce faire.
la source
using System.Globalization;
de noms pour accéderCultureInfo
Tout d'abord, il s'agit simplement d'une présentation du
float
nombre que vous voyez dans le débogueur. La valeur réelle est approximativement exacte (autant que possible).Remarque: utilisez toujours les informations CultureInfo lorsque vous traitez des nombres à virgule flottante par rapport aux chaînes.
C'est juste un exemple; choisissez une culture appropriée pour votre cas.
la source
new System.Globalization.CultureInfo("tr-TR")
Vous pouvez utiliser les éléments suivants:
la source
Utilisation
Convert.ToDouble("41.00027357629127");
Convert.ToDouble
Documentationla source
La précision du float est de 7 chiffres. Si vous souhaitez conserver l'ensemble du lot, vous devez utiliser le type double qui garde 15-16 chiffres. Concernant le formatage, regardez un article sur le formatage des doubles . Et vous devez vous soucier des séparateurs décimaux en C # .
la source
Vous pouvez
double.Parse("41.00027357629127");
la source
Vous pouvez utiliser l'analyse avec double au lieu de float pour obtenir une valeur plus précise.
la source