Estoy convirtiendo una cadena como "41.00027357629127", y estoy usando;
Convert.ToSingle("41.00027357629127");
o
float.Parse("41.00027357629127");
Estos métodos devuelven 4.10002732E + 15 .
Cuando convierto a flotante quiero "41.00027357629127". Esta cadena debe ser la misma ...
c#
.net
string
floating-point
type-conversion
Mehmet
fuente
fuente
Respuestas:
La configuración regional de su hilo se establece en una en la que la marca decimal es "," en lugar de ".".
Intente usar esto:
Sin embargo, tenga en cuenta que un flotador no puede contener tantos dígitos de precisión. Tendría que usar double o Decimal para hacerlo.
fuente
using System.Globalization;
de nombres para accederCultureInfo
Primero, es solo una presentación del
float
número que ve en el depurador. El valor real es aproximadamente exacto (tanto como sea posible).Nota: Utilice siempre la información CultureInfo cuando se trata de números de punto flotante frente a cadenas.
Este es solo un ejemplo; elija una cultura adecuada para su caso.
fuente
new System.Globalization.CultureInfo("tr-TR")
Puede utilizar lo siguiente:
fuente
Utilizar
Convert.ToDouble("41.00027357629127");
Convert.ToDouble
documentaciónfuente
La precisión de flotación es de 7 dígitos. Si desea conservar el lote completo, debe utilizar el tipo doble que conserva entre 15 y 16 dígitos. Con respecto al formato, mire una publicación sobre el formato de dobles . Y debe preocuparse por los separadores decimales en C # .
fuente
Usted puede
double.Parse("41.00027357629127");
fuente
Puede utilizar el análisis sintáctico con double en lugar de float para obtener un valor de mayor precisión.
fuente