Когда вы используете DecimalFormat
, помните о том, что во многих языках используется "," вместо "." для плавания. Таким образом, пока вы отформатируете число с плавающей запятой на «0,00», оно станет «0,00» в некоторых регионах (например, в немецком и польском). Это вызовет NullPointerException
, пока вы будете использовать этот новый форматированный float в приложениях для Android. Итак, что я сделал для того, чтобы вырезать, а не округлить, это привести его к int после умножения на 100, а затем переделать его обратно, чтобы плавать и разделить на 100
Это строка:
myFloat = (float)((int)( myFloat *100f))/100f;
Вы можете попробовать это с журналом:
float myFloat = 12.349;
myFloat = (float)((int)( myFloat *100f ))/100f;
Log.d(TAG, " myFloat = "+ myFloat); //you will get myFloat = 12.34
Это сократит myFloat на два знака после десятичной точки до формата ("0,00")
он не будет округлять его, как эта линия (myFloat = Math.round(myFloat *100.0)/100.0;
), он просто обрежет его.