Estou convertendo uma string como "41.00027357629127" e estou usando;
Convert.ToSingle("41.00027357629127");
ou
float.Parse("41.00027357629127");
Esses métodos retornam 4,10002732E + 15 .
Quando eu converter para float, quero "41.00027357629127". Esta string deve ser a mesma ...
c#
.net
string
floating-point
type-conversion
Mehmet
fonte
fonte
Respostas:
A localidade do seu segmento é definida como aquela em que a marca decimal é "," em vez de ".".
Tente usar este:
Observe, entretanto, que um float não pode conter tantos dígitos de precisão. Você teria que usar double ou decimal para fazer isso.
fonte
using System.Globalization;
para acessarCultureInfo
Primeiro, é apenas uma apresentação do
float
número que você vê no depurador. O valor real é aproximadamente exato (tanto quanto possível).Nota: Use sempre informações de CultureInfo ao lidar com números de ponto flutuante versus strings.
Este é apenas um exemplo; escolha uma cultura apropriada para o seu caso.
fonte
new System.Globalization.CultureInfo("tr-TR")
Você pode usar o seguinte:
fonte
Usar
Convert.ToDouble("41.00027357629127");
Convert.ToDouble
documentaçãofonte
A precisão do float é de 7 dígitos. Se você deseja manter o lote inteiro, você precisa usar o tipo duplo que mantém 15-16 dígitos. Com relação à formatação, dê uma olhada em um post sobre formatação de duplas . E você precisa se preocupar com separadores decimais em C # .
fonte
Você pode
double.Parse("41.00027357629127");
fonte
Você pode usar a análise com double em vez de float para obter mais valor de precisão.
fonte