文档章节

java 数字保留2位小数 格式化为价格类型

Code辉
 Code辉
发布于 2018/09/17 12:05
字数 397
阅读 54
收藏 4

ava保留两位小数问题:

方式一:

double f = 3.1516;
BigDecimal b = new BigDecimal(f);
double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
方式一中使用BigDecimal中的设置精确值,会四舍五入
保留两位小数  
---------------------------------------------------------------  

方式二:

java.text.DecimalFormat   df   =new   java.text.DecimalFormat("#.00");  
df.format(你要格式化的数字);

例:new java.text.DecimalFormat("#.00").format(3.1415926)

#.00 表示两位小数 #.0000四位小数 以此类推...

方式三:

double d = 3.1415926;

String result = String .format("%.2f",d);

%.2f %. 表示 小数点前任意位数   2 表示两位小数 格式后的结果为f 表示浮点型

方式四:

NumberFormat ddf1=NumberFormat.getNumberInstance() ;

void setMaximumFractionDigits(int digits) 
digits 显示的数字位数 
为格式化对象设定小数点后的显示的最多位,显示的最后位是舍入的

这里指出,这样格式化数据的话,你会发现,小数点后面的精确度影响很大,首先你要理解format的原理,原理大概是这个公式一样

float num=(float)(Math.round(totalPrice*100)/100);//如果要求精确4位就*10000然后/10000

这样计算的话,自己可以笔算试试,出来的结果跟你想要的结果误差是比较大的

解决处理的方法:

把所有的Float数据,换成Double

方法五:

Math.round(5.2644555 * 100) * 0.01d;
//String.format("%0" + 15 + "d", 23) 23不足15为就在前面补0

 

https://blog.csdn.net/qq_34412985/article/details/81022584

https://blog.csdn.net/qq_30983519/article/details/50515960

本文转载自:https://blog.csdn.net/qq_34412985/article/details/81022584

Code辉
粉丝 0
博文 67
码字总数 7564
作品 0
运城
私信 提问
猪猪的IT之路---Java成长之路day01下

使用eclipse创建第一个java项目和第一个java文件(类文件) 1.新建项目:打开eclipse:file-new-java project Project name:自定义的 Location:指向项目存储地址 JRE:需要注意其版本 新建好的...

猪猪代言人
01/03
0
0
Java Formatter 心得

阅读java util 包的源码的时候,忽然发现了,一个格式化类的使用,看完以后,发现,以前写代码太没有思考了,copy 过来就来用,其实,如果,只是多了解一点的话,也算是给自己多一种方式. question 1 ...

打杂程序猿
2013/04/28
0
3
Java中的小数是怎么存储的?(转载学习)

Java中的小数使用double和float表示,小数属于浮点型(默认为double)。 对于float型的值,则要在数字后加f或F,如12.3F,它在机器中占32位,4个字节来存储,表示精度较低。double是64位。 那...

小海bug
2018/08/31
0
0
freemarker 数字格式化深入理解

一、使用内建函数c 特点: 不管其表现形式是怎样的(例如"123,456.123,456"、"123456.123456"、"000123456.123456000"、"123,456.123456"、"1,2345,6.123456"),只要小数分割符是'.'它就能转......

毛朱
2013/01/24
0
0
java基础01(变量和注释、数据类型)

1,变量和注释   比如:姓名:xiaoming  年龄:18 1.1变量的基本概念   当需要在程序中记录单个数据内容时,则需要声明一个变量来处理,而变量的本质就是内存中申请一块存储单元用于存...

Java魑魅魍魉
2018/07/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Bootstrap(三)文本排版

排版前的基础 必须是HTML5文档类型 <!DOCTYPE html><html> <head> <meta charset="utf-8"> </head> <body></body></html> 移动设备优先(viewport的设置) <meta name="viewport"......

ZeroBit
15分钟前
0
0
编写高质量代码:改善Java程序的151个建议(第3章:类、对象及方法___建议41~46)

建议41:让多继承成为现实 在Java中一个类可以多重实现,但不能多重继承,也就是说一个类能够同时实现多个接口,但不能同时继承多个类。 Java中提供的内部类可以曲折的解决此问题。 建议42:...

青衣霓裳
15分钟前
0
0
实例解说AngularJS在自动化测试中的应用

7月25日晚8点,线上直播,【AI中台——智能聊天机器人平台】,点击了解详情。 一、什么是AngularJS ? 1、AngularJS是一组用来开发web页面的框架、模板以及数据绑定和丰富UI的组件; 2、Angul...

宜信技术学院
20分钟前
2
0
网站安全防护加固discuz漏洞修复方案

近期我们SINE安全在对discuz x3.4进行全面的网站渗透测试的时候,发现discuz多国语言版存在远程代码执行漏洞,该漏洞可导致论坛被直接上传webshell,直接远程获取管理员权限,linux服务器可以...

网站安全
20分钟前
0
0
彻底弄懂UTF-8、Unicode、宽字符、locale

结论 宽字符类型wchar_t locale 为什么需要宽字符类型 多字节字符串和宽字符串相互转换 最近使用到了wchar_t类型,所以准备详细探究下,没想到水还挺深,网上的资料大多都是复制粘贴,只有个...

linux服务器架构
21分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部