Java实现小数点后保留两位
小数点保留两位这个问题是个特殊情况,大多数场景下需要保留两位,也有一些特殊场景,比如经纬度,可能需要保留七位。
在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实现小数点后保留两位相关推荐
- 【js】小数点后保留两位小数
小数点后保留两位小数 dicountPrice.toFixed(2)
- C# 小数点后保留两位小数
C# 小数点后保留两位小数,四舍五入的函数及使用方法 1 Math.Round(45.367,2) //Returns 45.37 2 Math.Round(45.365,2) //Returns 4 ...
- mysql小数点后保留两位_不会保留小数点位数,做出来的表格难看,巧用ROUND函数解决...
先提问一下,在Excel中,利用公式计算时,计算出来的结果有时候会有N多位小数,很多同学是不是就直接选择单元格格式设置"数值"保留两位小数点,就OK了.然鹅,有没有细心的同学发现, ...
- 微信小程序输入框小数点后保留两位
图片效果 2.html部分 <input placeholder="0.00" value="{{docMoney}}" type="digit ...
- input金额自动转为千分位、小数点后保留两位
第一步: 需要封装一个js -代码 最后的getInputValue一定要用 export 导出,很多帖子上没有导出 const MoneyTest = /((^[1-9]\d*)|^0)(\.\d{ ...
- 小数点后保留两位有效数字 C++
#include <iostream> #include <iomanip> using namespace std; int main() {cout<<setp ...
- Python 输出小数点后保留两位有效数字简便方法
用round(a,n) a代表变量,n代表想保留的小数点的个数:比如:
- C# Math.Round小数点后保留两位小数,四舍五入的函数及使用方法
1 Math.Round(45.367,2) //Returns 45.37 2 Math.Round(45.365,2) //Returns 45.36 C#中的Round()不是我们中国人理解的四 ...
- 小数点后保留两位有效数字(c++)
#include <iostream> #include <iomanip> //不要忘记写!! using namespace std;int main(){double s ...
最新文章
- 转投AI?英国这所大学决定裁掉数学系,激怒了菲尔兹奖得主
- Win7开机蓝屏错误atikmpag.sys的解决方法
- saltstack(八):saltstack配置管理-安装配置启动tomcat样例
- C语言再学习 -- dmesg 命令
- C++框架_之Qt的信号和槽的详解
- 使用路标的Scala和Java的Twitter REST API
- python基础小白题2
- php里的stdclass,PHP中的stdClass是什么?
- 高通camera调试
- ExpressionFuncTObject, bool与FuncTObject, bool的区别
- Jupyter插件的使用
- in front of 与in the front of区别
- java 邮件发送 多人_java 发送邮件(可发送多人,抄送多人,可带附件)
- SPECT、PET、CT与MRI成像原理及其特点的比较
- ct扫描方式有哪些_日联科技x-ray:工业CT是怎么进行X射线的断层扫描的
- 图片API 通用接口
- 清理了一毒窝,基本上能中的全中了
- C#中的bin和obj文件夹有什么用?
- Java中的接口详解
- 数据结构算法 - 栈