博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浮点数精度控制方式总结(含mysql和java)
阅读量:4094 次
发布时间:2019-05-25

本文共 981 字,大约阅读时间需要 3 分钟。

我们应该经常会遇到浮点数的计算或者控制浮点数小数位数,这里将工作中有可能会用到的一些控制浮点数精度的方法做出总结:

A.Mysql中的函数
format
format()函数会对小数部分超过指定位四舍五入,整数部分从右向左每3位一个逗号进行格式化输出
这里写图片描述
truncate(x,d)
整数位没有逗号分隔,小数位超过指定位直接舍去,不四舍五入
这里写图片描述
convert(expr,type);
convert()函数会对小数部分进行四舍五入操作,decimal(7,2)表示最终得到的结果整数部分位数加上小数部分位数小于等于7,小数部分位数2
这里写图片描述
B. Java中对于数字的格式化方法
DecimalFormat(java.text包下)
DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字,可以处理正数负数货币等等——api上有
这里写图片描述

这里写图片描述

NumberFormat(DecimalFormat的直接父类)
这里写图片描述
myString = NumberFormat.getInstance().format(myNumber);
getInstance 或 getNumberInstance 来获取常规数值格式。使用 getIntegerInstance 来获取整数数值格式。使用 getCurrencyInstance 来获取货币数值格式。使用 getPercentInstance 来获取显示百分比的格式。使用此格式,小数 0.53 将显示为 53%

NumberFormat f=NumberFormat.getPercentInstance();        f.setMinimumIntegerDigits(4);//设置整数位数——其他同理        f.setMinimumFractionDigits(2);//设置小数位数——其他同理

这里写图片描述

BigDecimal(一般使用该类型来表示金钱)
不可变的、任意精度的有符号十进制数。BigDecimal 由任意精度的整数(非标度值) 和 32 位的整数标度 (scale—即小数位) 组成。如果为零或正数,则标度是小数点后的位数。如果为负数,则将该数的非标度值乘以 10 的负 scale 次幂。因此,BigDecimal 表示的数值是 (unscaledValue × 10-scale)
这里写图片描述

你可能感兴趣的文章
displaytag 分页-添加页码输入框跳转至指定页
查看>>
servlet总结
查看>>
ModelAndView使用方法
查看>>
ACL配置原则
查看>>
MySQL 数据库应用程序编程
查看>>
17秋 软件工程 团队第五次作业 Alpha Scrum7
查看>>
spring+springmvc+hibernate 礼品管理系统
查看>>
Java Web开发 之JavaBean整理
查看>>
洛谷P1242 新汉诺塔 【神奇的递归】
查看>>
推荐系统中的SVD算法
查看>>
产品管理|产品设计流程[完整版]
查看>>
TableViewCell自定义分割线
查看>>
C语言笔记之结构体
查看>>
[积累]C++复习 海大2014硕士生面试题微信系统总结
查看>>
JAVA设计模式--工厂方法模式
查看>>
js正则表达式语法
查看>>
网络直播电视之M3U8解析篇 (下)
查看>>
走进windows编程的世界-----windows进程
查看>>
人类智商一般在多少左右?爱因斯坦的智商是多少?
查看>>
在mac上使用sublime text3搭建opencv3开发环境
查看>>