Math.round();//四舍五入
為下陸等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及下陸網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為成都網(wǎng)站設計、成都做網(wǎng)站、外貿網(wǎng)站建設、下陸網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
Math.ceil();//向上取整
向你這175取180需要除10后向上取整或者是四舍五入后在乘以10
我來告訴你原因吧
up=四舍五入
down=五會舍去,大于5就入
然后你程序是錯的
BigDecimal a = new BigDecimal(1.525);
BigDecimal b = new BigDecimal(-1.525);
System.out.println(a);
System.out.println(b);
new BigDecimal最好用string,你直接寫數(shù)字的話,結果不是你想要的,以上程序,結果是:
1.524999999999999911182158029987476766109466552734375
-1.524999999999999911182158029987476766109466552734375
浮點數(shù)是不精確的
分給我吧
這是因為整數(shù)在計算機中是二進制存儲的。
java中 ~5=-6 ,而這個-6是輸出到屏幕上,我們看到的是-6。
首先看對5求反,
5的二進制原碼是:0000 0101,
取反之后是:1111 1010 ,得到的這個值在計算機中的存儲原型也是 1111 1010,而要把這個結果顯示出來,到計算機屏幕上就要轉換成十進制,也就是說 1111 1010 是補碼形式,
補碼 = 原碼取反 + 1。
補碼要換算成對應的十進制就是
原碼取反 = 補碼 -1
所以 1111 1010 - 1 = 1111 1001, 然后再對 1111 1001 取反,得到 1000 0110,
所以 原碼就是 1000 0110,對應的十進制就是 -6。
同樣的,這樣看也行:
-6在計算機中的存儲為二進制補碼形式,也就是說-6的補碼是 1000 1010 (-6的二進制原碼是:1000 0110,源碼取反之后是 1111 1001,再加上1就是 1111 1010,這就是補碼了)。
public static void main(String[] args) {
int h=0;
byte byte1 = Byte.parseByte(Integer.toString(5,h+=2), h);
byte byte2 = Byte.parseByte(Integer.toString(10,h+=2), h);
byte byte3 = Byte.parseByte(Integer.toString(20,h+=2), h);
byte byte4 = Byte.parseByte(Integer.toString(30,h+=2), h);
byte byte5 = Byte.parseByte(Integer.toString(124,h+=2), h);
StringBuilder sb = new StringBuilder(100);
sb.append("byte1:");
sb.append(byte1);
sb.append('\n');
sb.append("byte2:");
sb.append(byte2);
sb.append('\n');
sb.append("byte3:");
sb.append(byte3);
sb.append('\n');
sb.append("byte4:");
sb.append(byte4);
sb.append('\n');
sb.append("byte5:");
sb.append(byte5);
sb.append('\n');
System.err.println(sb);
}