Raphael Rivas Postado 16 de janeiro de 2014 Denunciar Compartilhar Postado 16 de janeiro de 2014 Eu notei que o float só suporta até 6 casas decimais. Casas além da 6ª são IGNORADAS ou são substituidas por números aleatórios.Eu estou fazendo uma calculadora no aplicativo e preciso que ele calcule números densos ! Alguém me da uma luz ! NSLog(@"%.16f",(float)0.330003); //LOG:0.3300000131130219 (6 casas decimais) NSLog(@"%.16f",(float)0.330000003); //LOG:0.3300029933452606 (mais de 6 casas decimais) NSLog(@"%f",(float)0.330003); //LOG:0.330003 (6 casas decimais) NSLog(@"%f",(float)0.330000003); //LOG:0.330000 (mais de 6 casas decimais) Agora sem o float value, como eu desejava NSLog(@"%.16f",0.330003); //LOG:0.3300030000000000 (6 casas decimais) NSLog(@"%.16f",0.330000003); //LOG:0.3300000030000000 (mais de 6 casas decimais) NSLog(@"%f",0.330003); //LOG:0.330003 (6 casas decimais) NSLog(@"%f",0.330000003); //LOG:0.330000 (mais de 6 casas decimais) Aí eu te pergunto, como a apple fez uma calculadora que calcula numeros decimais denssíssimos e nós desenvolvedores não temos essa dádiva ? Citar Link para o comentário Compartilhar em outros sites Mais opções de compartilhamento…
Hercules Jr Postado 17 de janeiro de 2014 Denunciar Compartilhar Postado 17 de janeiro de 2014 (editado) Melhor lugar que achei para explicar a diferença entre float e double. http://stackoverflow.com/questions/2386772/difference-between-float-and-double Mas resumindo, não faça cast para float, faça para double, como o próprio nome diz, ele guarda o dobro de informação do float. Edit: Tinha esquecido o link Editado 17 de janeiro de 2014 por Hercules Jr Citar Link para o comentário Compartilhar em outros sites Mais opções de compartilhamento…
Posts Recomendados
Participe do debate
Você pode postar agora e se registrar depois. Se você tem uma conta, entre agora para postar com ela.