Hoje de manhã lá no trabalho um amigo meu ficou com a pulga atrás da orelha, ele tinha um código que formatava um “float” genericamente (pra manter o padrão em todo o sistema), nas na própria declaração dos floats ele estava perdendo a precisão (numa máquina Linux) :shock:
Não havia nenhuma operação acontecendo nem nada, simplesmente por declarar o float perdia a precisão. Mexemos um bocado mas não deu em nada. Agora que eu cheguei em casa refiz os testes (em uma máquina Windows) e tudo funcionou normalmente :?
Se alguém souber se esse comportamento é comum ou tiver como testar esse código aí embaixo no Linux só pra confirmar, seria ótimo
public class TestFloats extends TestCase {
public void testFloatToString() {
TestCase.assertEquals( "0.12" , TestFloats.floatToString(0.12f) );
TestCase.assertEquals( "0.123456" , TestFloats.floatToString(0.123456f) );
TestCase.assertEquals( "0.1234561" , TestFloats.floatToString(0.1234561f) );
}
public static String floatToString( float f) {
return Float.toString(f);
}
}