Ⅰ java中float類型保留2位小數,第3位值>0就向第二位進1 怎樣實現
可以直接通過判斷第三位的值,如果第三位乘以1000,之後對10求余,如果大於0,直接給第二位加上一個值「10」,在除以1000即可。
float f1 = 3.222f;
int num = (int) (f1 * 1000);
if (num % 10 > 0)
f1 = (num -num % 10 + 10 * 1.0f) / 1000.0f;
else
f 1= num * 1.0f / 1000.0f;
System.out.println(f);
輸出結果:3.23.
Ⅱ java中如何實現將float精確到小數點後兩位
方法1:用Math.round計算,這里返回的數字格式的.
float price=89.89;
int itemNum=3;
float totalPrice=price*itemNum;
float num=(float)(Math.round(totalPrice*100)/100);//如果要求精確4位就*10000然後/10000
方法2:用DecimalFormat 返回的是String格式的.該類對十進制進行全面的封裝.像%號,千分位,小數精度.科學計算.
float price=1.2;
DecimalFormat decimalFormat=new DecimalFormat(".00");//構造方法的字元格式這里如果小數不足2位,會以0補足.
String p=decimalFomat.format(price);//format 返回的是字元串
Ⅲ JAVA如何把一個float四捨五入到小數點後2位,4位,或者其它指定位數
你好:
floata=123.2354f;
floatb=(float)(Math.round(a*100))/100;輸出123.24
如果想要3位就是把2個100都換成1000
Ⅳ Java初學float小數的問題
在計算機幾內部,小數不是按照四捨五入的方法的。因為計算機只有0和1,沒有4和5,所以不能四捨五入的。
不管是float還是double,在處理末位時都是直接丟棄的。比如一個小數,應該是用33位二進制碼才能完全表示的,但是float只有32位,於是最後一位就被扔了,表現出來的效果有時是減一,有時是不變。
Ⅳ java中float和double輸出結果到底是多少位
輸出1位
:因為
float
本來就是單精度的!
輸出1位正常!不過通常帶有
12.2f
1.float
它最多隻能保存
7位有效數字!2.兩個float相乘結果為float
3.乘數中只要有一個數為double,結果也有double
4.實數在計算機是以浮點數的形式表示的。所以要看它的實際二進制的編碼方式