java高精度
toPlainString() //转为普遍计数法输出 例如给一个字符串1.2345678E-10,得到0.00000000012345678
stripTrailingZeros() //去掉(小数点后)末尾0
对于让保留多少位小数的 ,调用上述方法后没有小数了 我们可以这样:
if(retStr.indexOf(".")==-1)
retStr = retStr+".00";
获得小数点后有几位的方法:
scale()
比如:BigDecimal b = new BigDecimal(“123.456”);
b.scale(),返回的就是3.
**处理小数点后几位**
BigDecimal.setScale()方法用于格式化小数点
setScale(1)表示保留一位小数,默认用四舍五入方式
setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位,如2.35会变成2.3
setScale(1,BigDecimal.ROUND_UP)进位处理,2.35变成2.4
setScale(1,BigDecimal.ROUND_HALF_UP)四舍五入,2.35变成2.4
setScale(1,BigDecimal.ROUND_HALF_DOWN)四舍五入,2.35变成2.3,如果是5则向下舍
setScale(1,BigDecimal.ROUND_CEILING)接近正无穷大的舍入
setScale(1,BigDecimal.ROUND_FLOOR)接近负无穷大的舍入,数字>0和ROUND_UP作用一样,数字<0和ROUND_DOWN作用一样
setScale(1,BigDecimal.ROUND_HALF_EVEN)向最接近的数字舍入,如果与两个相邻数字的距离相等,则向相邻的偶数舍入。
java大数
java内置了一个O(logn)的方法BigInteger.isProbablePrime(y);
isProbablePrime(int certainty):如果该 BigInteger 可能是素数,则返回 true ;如果它很明确是一个合数,则返回 false 。 参数 certainty 是对调用者愿意忍受的不确定性的度量:如果该数是素数的概率超过了 1 - 1/2**certainty方法,则该方法返回 true 。执行时间正比于参数确定性的值。
java字符串reverse
public static String reverse1(String str) {
return new StringBuilder(str).reverse().toString();
}