小数点保留两位这个问题是个特殊情况,大多数场景下需要保留两位,也有一些特殊场景,比如经纬度,可能需要保留七位。

在java中,可以通过如下几种方式格式化:

package com.xxx.huali.hualitest.numberformat;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat;
public class NumberDemo {/*** 利用BigDecimal格式化* @param d* @param b* @return*/public static double getNumber1(double d,int b) {BigDecimal decimal = new BigDecimal(d);return decimal.setScale(b, BigDecimal.ROUND_HALF_UP).doubleValue();}/*** 利用NumberFormat格式化* @param d* @param b* @return*/public static double getNumber2(double d,int b) {NumberFormat nf = NumberFormat.getInstance();nf.setMaximumFractionDigits(b);return Double.valueOf(nf.format(d));}/*** 直接使用数据类型格式化* @param d* @param b* @return*/public static double getNumber3(double d,int b) {String pattern = "%."+b+"f";String res = String.format(pattern, d);return Double.valueOf(res);}/*** 利用#.00格式化* @param d* @param b* @return*/public static double getNumber4(double d,int b) {StringBuilder pattern = new StringBuilder("#.");for(int i=0;i<b;i++) {pattern.append("0");}DecimalFormat format = new DecimalFormat(pattern.toString());String res = format.format(d);return Double.valueOf(res);}public static void display(int n) {double d1 = getNumber1(Math.PI, n);double d2 = getNumber2(Math.PI, n);double d3 = getNumber3(Math.PI, n);double d4 = getNumber4(Math.PI, n);System.out.print("d1 = "+d1);System.out.print("\td2 = "+d2);System.out.print("\td3 = "+d3);System.out.println("\td4 = "+d4);}public static void main(String[] args) {display(2);display(3);display(4);}
}

运行该段程序,打印如下:

除第一种方法外,其他几种format转换之后,都是字符串形式,还需要进一步转换为double类型,这一点需要注意。

Java实现小数点后保留两位相关推荐

  1. 【js】小数点后保留两位小数

    小数点后保留两位小数 dicountPrice.toFixed(2)

  2. C# 小数点后保留两位小数

    C# 小数点后保留两位小数,四舍五入的函数及使用方法 1 Math.Round(45.367,2) //Returns 45.37 2 Math.Round(45.365,2) //Returns 4 ...

  3. mysql小数点后保留两位_不会保留小数点位数,做出来的表格难看,巧用ROUND函数解决...

    先提问一下,在Excel中,利用公式计算时,计算出来的结果有时候会有N多位小数,很多同学是不是就直接选择单元格格式设置"数值"保留两位小数点,就OK了.然鹅,有没有细心的同学发现, ...

  4. 微信小程序输入框小数点后保留两位

    图片效果 2.html部分 <input placeholder="0.00" value="{{docMoney}}" type="digit ...

  5. input金额自动转为千分位、小数点后保留两位

    第一步: 需要封装一个js -代码 最后的getInputValue一定要用 export 导出,很多帖子上没有导出 const MoneyTest = /((^[1-9]\d*)|^0)(\.\d{ ...

  6. 小数点后保留两位有效数字 C++

    #include <iostream> #include <iomanip> using namespace std; int main() {cout<<setp ...

  7. Python 输出小数点后保留两位有效数字简便方法

    用round(a,n) a代表变量,n代表想保留的小数点的个数:比如:

  8. C# Math.Round小数点后保留两位小数,四舍五入的函数及使用方法

    1 Math.Round(45.367,2) //Returns 45.37 2 Math.Round(45.365,2) //Returns 45.36 C#中的Round()不是我们中国人理解的四 ...

  9. 小数点后保留两位有效数字(c++)

    #include <iostream> #include <iomanip> //不要忘记写!! using namespace std;int main(){double s ...

最新文章

  1. 转投AI?英国这所大学决定裁掉数学系,激怒了菲尔兹奖得主
  2. Win7开机蓝屏错误atikmpag.sys的解决方法
  3. saltstack(八):saltstack配置管理-安装配置启动tomcat样例
  4. C语言再学习 -- dmesg 命令
  5. C++框架_之Qt的信号和槽的详解
  6. 使用路标的Scala和Java的Twitter REST API
  7. python基础小白题2
  8. php里的stdclass,PHP中的stdClass是什么?
  9. 高通camera调试
  10. ExpressionFuncTObject, bool与FuncTObject, bool的区别
  11. Jupyter插件的使用
  12. in front of 与in the front of区别
  13. java 邮件发送 多人_java 发送邮件(可发送多人,抄送多人,可带附件)
  14. SPECT、PET、CT与MRI成像原理及其特点的比较
  15. ct扫描方式有哪些_日联科技x-ray:工业CT是怎么进行X射线的断层扫描的
  16. 图片API 通用接口
  17. 清理了一毒窝,基本上能中的全中了
  18. C#中的bin和obj文件夹有什么用?
  19. Java中的接口详解
  20. 数据结构算法 - 栈

热门文章

  1. 网上买的流量卡不想要了,你们都是怎么处理的?
  2. Android 重写系统Crash处理类,保存Crash信息到SD卡 和 完美退出程序的方法
  3. java微信--企业付款到银行卡
  4. anddroid制作直播中的礼物的动画
  5. java冒泡从大到小排序代码_Java 冒泡排序、快速排序实例代码
  6. 和北邮的学生相比,差哪儿了
  7. Raft分布式一致性协议基本过程
  8. i9-10980HK和r7 4800H哪个好
  9. 配置Discuz论坛
  10. vue中如何进行身份证合法性校验(身份证18位,包含最后一位数字/字母)