Raphael Rivas Posted January 16, 2014 Report Posted January 16, 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 ? Quote
Hercules Jr Posted January 17, 2014 Report Posted January 17, 2014 (edited) 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 Edited January 17, 2014 by Hercules Jr Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.