国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java 保留兩位小數的幾種方法

2019-11-26 14:05:38
字體:
來源:轉載
供稿:網友

1.代碼:

import java.math.BigDecimal;import java.text.DecimalFormat;import java.text.NumberFormat;public class format { double f = 111231.5585; public void m1() {  BigDecimal bg = new BigDecimal(f);  double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();  System.out.println(f1); } /**  * DecimalFormat轉換最簡便  */ public void m2() {  DecimalFormat df = new DecimalFormat("#.00");  System.out.println(df.format(f)); } /**  * String.format打印最簡便  */ public void m3() {  System.out.println(String.format("%.2f", f)); } public void m4() {  NumberFormat nf = NumberFormat.getNumberInstance();  nf.setMaximumFractionDigits(2);  System.out.println(nf.format(f)); } public static void main(String[] args) {  format f = new format();  f.m1();  f.m2();  f.m3();  f.m4(); }}

2.輸出結果:

111231.56
111231.56
111231.56
111,231.56

這里我們提供了一個工具類,定義浮點數的加、減、乘、除和四舍五入等運算方法。以供參考。

源文件MathExtend.java:

import java.math.BigDecimal;public class MathExtend{ //默認除法運算精度 private static final int DEFAULT_DIV_SCALE = 10;  /** * 提供精確的加法運算。 * @param v1 * @param v2 * @return 兩個參數的和 */ public static double add(double v1, double v2) {   BigDecimal b1 = new BigDecimal(Double.toString(v1));   BigDecimal b2 = new BigDecimal(Double.toString(v2));   return b1.add(b2).doubleValue(); } /**  * 提供精確的加法運算  * @param v1   * @param v2  * @return 兩個參數數學加和,以字符串格式返回  */ public static String add(String v1, String v2) {   BigDecimal b1 = new BigDecimal(v1);   BigDecimal b2 = new BigDecimal(v2);   return b1.add(b2).toString(); }  /** * 提供精確的減法運算。 * @param v1 * @param v2 * @return 兩個參數的差 */ public static double subtract(double v1, double v2) {   BigDecimal b1 = new BigDecimal(Double.toString(v1));   BigDecimal b2 = new BigDecimal(Double.toString(v2));   return b1.subtract(b2).doubleValue(); }  /**  * 提供精確的減法運算  * @param v1  * @param v2  * @return 兩個參數數學差,以字符串格式返回  */ public static String subtract(String v1, String v2) {   BigDecimal b1 = new BigDecimal(v1);   BigDecimal b2 = new BigDecimal(v2);   return b1.subtract(b2).toString(); }   /** * 提供精確的乘法運算。 * @param v1 * @param v2 * @return 兩個參數的積 */ public static double multiply(double v1, double v2) {   BigDecimal b1 = new BigDecimal(Double.toString(v1));   BigDecimal b2 = new BigDecimal(Double.toString(v2));   return b1.multiply(b2).doubleValue(); }  /**  * 提供精確的乘法運算  * @param v1  * @param v2  * @return 兩個參數的數學積,以字符串格式返回  */ public static String multiply(String v1, String v2) {   BigDecimal b1 = new BigDecimal(v1);   BigDecimal b2 = new BigDecimal(v2);   return b1.multiply(b2).toString(); }  /** * 提供(相對)精確的除法運算,當發生除不盡的情況時,精確到 * 小數點以后10位,以后的數字四舍五入,舍入模式采用ROUND_HALF_EVEN * @param v1 * @param v2 * @return 兩個參數的商 */ public static double divide(double v1, double v2) {   return divide(v1, v2, DEFAULT_DIV_SCALE); }  /**  * 提供(相對)精確的除法運算。當發生除不盡的情況時,由scale參數指  * 定精度,以后的數字四舍五入。舍入模式采用ROUND_HALF_EVEN  * @param v1  * @param v2  * @param scale 表示需要精確到小數點以后幾位。  * @return 兩個參數的商  */ public static double divide(double v1,double v2, int scale) {   return divide(v1, v2, scale, BigDecimal.ROUND_HALF_EVEN); }  /**  * 提供(相對)精確的除法運算。當發生除不盡的情況時,由scale參數指  * 定精度,以后的數字四舍五入。舍入模式采用用戶指定舍入模式  * @param v1  * @param v2  * @param scale 表示需要精確到小數點以后幾位  * @param round_mode 表示用戶指定的舍入模式  * @return 兩個參數的商  */ public static double divide(double v1,double v2,int scale, int round_mode){     if(scale < 0)     {       throw new IllegalArgumentException("The scale must be a positive integer or zero");     }     BigDecimal b1 = new BigDecimal(Double.toString(v1));     BigDecimal b2 = new BigDecimal(Double.toString(v2));     return b1.divide(b2, scale, round_mode).doubleValue(); }  /**  * 提供(相對)精確的除法運算,當發生除不盡的情況時,精確到  * 小數點以后10位,以后的數字四舍五入,舍入模式采用ROUND_HALF_EVEN  * @param v1  * @param v2  * @return 兩個參數的商,以字符串格式返回  */ public static String divide(String v1, String v2) {   return divide(v1, v2, DEFAULT_DIV_SCALE); }  /**  * 提供(相對)精確的除法運算。當發生除不盡的情況時,由scale參數指  * 定精度,以后的數字四舍五入。舍入模式采用ROUND_HALF_EVEN  * @param v1  * @param v2  * @param scale 表示需要精確到小數點以后幾位  * @return 兩個參數的商,以字符串格式返回  */ public static String divide(String v1, String v2, int scale) {   return divide(v1, v2, DEFAULT_DIV_SCALE, BigDecimal.ROUND_HALF_EVEN); }  /**  * 提供(相對)精確的除法運算。當發生除不盡的情況時,由scale參數指  * 定精度,以后的數字四舍五入。舍入模式采用用戶指定舍入模式  * @param v1  * @param v2  * @param scale 表示需要精確到小數點以后幾位  * @param round_mode 表示用戶指定的舍入模式  * @return 兩個參數的商,以字符串格式返回  */ public static String divide(String v1, String v2, int scale, int round_mode) {   if(scale < 0)   {     throw new IllegalArgumentException("The scale must be a positive integer or zero");   }   BigDecimal b1 = new BigDecimal(v1);   BigDecimal b2 = new BigDecimal(v2);   return b1.divide(b2, scale, round_mode).toString(); }  /**  * 提供精確的小數位四舍五入處理,舍入模式采用ROUND_HALF_EVEN  * @param v 需要四舍五入的數字  * @param scale 小數點后保留幾位  * @return 四舍五入后的結果  */ public static double round(double v,int scale) {   return round(v, scale, BigDecimal.ROUND_HALF_EVEN); } /**  * 提供精確的小數位四舍五入處理  * @param v 需要四舍五入的數字  * @param scale 小數點后保留幾位  * @param round_mode 指定的舍入模式  * @return 四舍五入后的結果  */ public static double round(double v, int scale, int round_mode) {   if(scale<0)   {     throw new IllegalArgumentException("The scale must be a positive integer or zero");   }   BigDecimal b = new BigDecimal(Double.toString(v));   return b.setScale(scale, round_mode).doubleValue(); }  /**  * 提供精確的小數位四舍五入處理,舍入模式采用ROUND_HALF_EVEN  * @param v 需要四舍五入的數字  * @param scale 小數點后保留幾位  * @return 四舍五入后的結果,以字符串格式返回  */ public static String round(String v, int scale) {  return round(v, scale, BigDecimal.ROUND_HALF_EVEN); } /**  * 提供精確的小數位四舍五入處理  * @param v 需要四舍五入的數字  * @param scale 小數點后保留幾位  * @param round_mode 指定的舍入模式  * @return 四舍五入后的結果,以字符串格式返回  */ public static String round(String v, int scale, int round_mode) {   if(scale<0)   {     throw new IllegalArgumentException("The scale must be a positive integer or zero");   }   BigDecimal b = new BigDecimal(v);   return b.setScale(scale, round_mode).toString(); }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 含山县| 宝兴县| 策勒县| 英吉沙县| 金门县| 麦盖提县| 广昌县| 保定市| 济宁市| 普洱| 蒲江县| 罗源县| 广水市| 新乡县| 株洲县| 宁安市| 邮箱| 灵武市| 琼海市| 黄浦区| 台前县| 石柱| 昔阳县| 武汉市| 呼图壁县| 元江| 黑龙江省| 金门县| 绥滨县| 海晏县| 古田县| 双牌县| 胶州市| 马鞍山市| 汉川市| 长宁区| 萝北县| 云霄县| 启东市| 张家口市| 汝州市|