您好,登錄后才能下訂單哦!
本篇文章為大家展示了Java如何保留指定的小數點,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
今天項目中需要更改時長的顯示方式,規定必須保留兩位小數,剛才看簡書的時候正好看到一個指定保留小數位數的工具類的文章,在此基礎上,做了一點小修改,用起來更加方便了,有需要的朋友盡管擼走
DecimalUtils 類:
import java.math.BigDecimal; import java.math.RoundingMode; import java.text.DecimalFormat; /** * Created by Sean on 17/3/10. */ public class DecimalUtils { /** * 按四舍五入保留指定小數位數,位數不夠用0補充 * @param o 格式化前的小數 * @param newScale 保留小數位數 * @return 格式化后的小數 */ public static String formatDecimalWithZero(Object o, int newScale) { return String.format("%." + newScale + "f", o); } /** * 按四舍五入保留指定小數位數,位數不夠用0補充 * @param d 格式化前的小數 * @param newScale 保留小數位數 * @return 格式化后的小數 */ public static String formatDecimalWithZero(double d, int newScale) { String pattern = "0."; for (int i = 0; i < newScale; i++) { pattern += "0"; } DecimalFormat df = new DecimalFormat(pattern); return df.format(d); } /** * 按四舍五入保留指定小數位數,位數不夠用0補充 * @param d 格式化前的小數 String形式 * @param newScale 保留小數位數 * @return 格式化后的小數 */ public static String formatDecimalWithZero(String d, int newScale) { String pattern = "0."; for (int i = 0; i < newScale; i++) { pattern += "0"; } DecimalFormat df = new DecimalFormat(pattern); return df.format(Double.valueOf(d)); } /** * 按四舍五入保留指定小數位數,小數點后僅保留有效位數 * @param d 格式化前的小數 * @param newScale 保留小數位數 * @return 格式化后的小數 */ public static String formatDecimal(double d, int newScale) { String pattern = "#."; for (int i = 0; i < newScale; i++) { pattern += "#"; } DecimalFormat df = new DecimalFormat(pattern); return df.format(d); } /** * 按四舍五入保留指定小數位數,小數點后僅保留有效位數 * @param d 格式化前的小數 * @param newScale 保留小數位數 * @return 格式化后的小數 */ public static String formatDecimal(String d, int newScale) { String pattern = "#."; for (int i = 0; i < newScale; i++) { pattern += "#"; } DecimalFormat df = new DecimalFormat(pattern); return df.format(Double.valueOf(d)); } /** * 按指定舍入模式保留指定小數位數 * @param d 格式化前的小數 * @param newScale 保留小數位數 * @param roundingMode 舍入模式 * (RoundingMode.UP始終進一/DOWN直接舍棄/ * CEILING正進負舍/FLOOR正舍負進/ * HALF_UP四舍五入/HALF_DOWN五舍六進/ * HALF_EVEN銀行家舍入法/UNNECESSARY拋出異常) * @return 格式化后的小數 */ public static double formatDecimal(double d, int newScale, RoundingMode roundingMode) { BigDecimal bd = new BigDecimal(d).setScale(newScale, roundingMode); return bd.doubleValue(); } /** * 按指定舍入模式保留指定小數位數 * @param d 格式化前的小數 * @param newScale 保留小數位數 * @param roundingMode 舍入模式 * (RoundingMode.UP始終進一/DOWN直接舍棄/ * CEILING正進負舍/FLOOR正舍負進/ * HALF_UP四舍五入/HALF_DOWN五舍六進/ * HALF_EVEN銀行家舍入法/UNNECESSARY拋出異常) * @return 格式化后的小數 */ public static double formatDecimal(String d, int newScale, RoundingMode roundingMode) { BigDecimal bd = new BigDecimal(Double.valueOf(d)).setScale(newScale, roundingMode); return bd.doubleValue(); } }
上述內容就是Java如何保留指定的小數點,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。