Postado 16 de janeiro de 201412 anos comment_798749 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 ? Denunciar
Postado 17 de janeiro de 201412 anos comment_798765 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 201412 anos por Hercules Jr Denunciar
Participe do debate
Você pode postar agora e se registrar depois. Se você tem uma conta, entre agora para postar com ela.