java 乘法保留两位小数,Java保留两位小数的方法
项目中有一个小需求,两个整数相除,结果需要保留两位小数,即1.00、0.50这种数据格式。
以下做法不行,因为两整数相除,小数点以后的数字会被截断,让运算结果为整数类型,
int x = 10;
int y = 20;
int a = x/y;
System.out.println(a);
// 输出0
System.out.println(x/y);
// 输出0
System.out.println((float)(x/y));
// 输出0.0
此时需要运算结果为浮点数,则此时必须将两整数其一或是全部强制转换类型为浮点数,
float b = (float)x/y;
float c = x/(float)y;
float d = (float)x/(float)y;
System.out.println(b);
// 输出0.5
System.out.println(c);
// 输出0.5
System.out.println(d);
// 输出0.5
为了控制保留两位小数,需要进行格式化,
DecimalFormat df = new DecimalFormat("0.00");
String e = df.format(b); // 此处可以用上面b/c/d任意一种
System.out.println(e);
// 输出0.50
String e = df.format(a);
System.out.println(e);
// 输出0.00,由于a是int类型值,格式化之前x/y已经为整数0,因此此处只增加两位小数0
网上有一种写法,用了如下方法,他的含义是四舍五入,保留两位小数,但需要小数有值,
double a = new BigDecimal((float)10/20).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(a);
// 输出0.5
double b = new BigDecimal((float)1/3).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(f);
// 输出0.33
另外,float是单精度类型,精度是8位有效数字,内存分配4个字节,占32位,取值范围是10的-38次方到10的38次方,有效小数位6-7位。
对应double是双精度类型,精度是17位有效数字,取值范围是10的-308次方到10的308次方,double占用8个字节的存储空间。
默认小数都用double来表示,所以如果要用float的话,则应该在其后加上f,例如这么声明,
float z=1.3;
会报错误
Type mismatch: cannot convert from double to float
需要改为,
float z=1.3f;
java 乘法保留两位小数,Java保留两位小数的方法相关推荐
- java乘法口诀表_用Java语言打印九九乘法口诀表
打印九九乘法口诀表. 程序: package myclass; public class myclass { public static void main(String[] args) { for( ...
- java 乘法保留两位小数_java.math.BigDecimal保留两位小数,保留小数,精确位数
java保留两位小数问题: 方式一(四舍五入形式保留两位小数,注意模式ROUND_HALF_UP): 四舍五入 double f = 111231.5585; BigDecimal b ...
- java.math.BigDecimal保留两位小数,保留小数,精确位数
http://blog.csdn.net/yuhua3272004/article/details/3075436 使用java.math.BigDecimal工具类实现 java保留两位小数问题 ...
- 用java编写保留两位小数_Java保留两位小数的几种写法总结
摘要:这篇Java开发技术栏目下的"Java保留两位小数的几种写法总结",介绍的技术点是"Java保留两位小数.保留两位小数.两位小数.Java.小数.总结", ...
- java保留两位小数(java保留两位小数)
197保留两位小数是多?1.197保留两位小数是多少 1.20 P.S. 你的支持是我坚持的动力~,点下好评吧,亲!!! 两位小数的积是3?两位小数的积是3.872,保留两位小数是,保留 选中区域,点 ...
- java int 保留两位小数_java保留两位小数
java保留两位小数问题: 方式一: 四舍五入 double f = 111231.5585; BigDecimal b = new BigDecimal(f); doub ...
- java int 保留两位小数_java 保留两位小数的几种方法
1.代码: import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.NumberFormat; pu ...
- java 两位小数_java保留两位小数及多位小数的方法 | 夕辞
在JAVA代码开发中,我们经常用到对小数的处理,很多场景下要保留几位小数,比如在支付场景和订单中对金额的处理中,这个有很多方法,以下就介绍下常用的几种方法,我们以保留两位小数为例. [推荐]第一种:S ...
- java拼接sql保留两位小数_SQL 保留两位小数的实现方式
问题: 客户要求,跟金额相关的数据,打印出来要保留两位小数,比如:13.2/13.200要显示为13.20: 分析: 首先查看数据库中的数据定义,均为decimal(12,2) ,直接通过数据库查询的 ...
- Java 十进制正小数转为其他进制正小数(小数点后保留10位)
N进制小数 题目描述: 编写程序实现将任意10进制正小数m转换成n进制的正小数,小数点后保留10位小数 解答要求: 时间限制1000ms,内存限制64ms 输入: 输入包含两个数m.n,用空格隔开.输 ...
最新文章
- 【温故知新】HTML学习笔记(下)
- The Apache Tomcat installation at this directory is version,tomcat
- python读txt转array_python将txt文件读入为np.array的方法
- TensorFlow中的多线程
- Android 学习心得(2)——Android内置数据库SQLite
- 结构体符号重载(简单版+手动扩栈方法)
- 用Feed43为随意站点定制RSS feed教程~
- java aes cbc iv_关于AES加解密中CBC模式的IV初始化向量的安全性问题
- 软件测试之因果图分析法
- 【技术】客服服务开发
- 看刘未鹏先生的博客的一些摘记
- 域名注册查询API接口工具
- 基于单片机的模拟电磁曲炮设计
- 纽约州立大学环境与林业学院计算机科学专业,纽约州立大学环境与林业科学 治理环境是全球需要面对的问题...
- lifeifei翻译目录
- findIndex()
- 福特FORD EDI流程指南
- 中国软件缺少核心技术 自主创新是关健
- 美团点评技术与算法文章汇总,设计算法、前后端、客户端、小程序等
- 15个漂亮的国外Flash网站模板下载
热门文章
- 远程桌面由于以下原因之一无法连接到远程计算机(可能是由于CredSSP加密……)
- 《红楼梦》23道经典菜制作方法, 有原文,有出处(转)
- shuf 随机选取txt文件特定行数
- 无法上网dns转发_从DoH到ODoH,运营商再也不能搞DNS劫持了
- 怎么更改mac电脑的系统语言,Mac电脑的语音设置在哪
- 服务器整体爆率如何修改,土豪玩家是怎么玩游戏的?一口气收购全区物资,逼得官方修改爆率!...
- spring-boot-starter-data-redis介绍
- win11怎么使用录屏功能?两个小技巧了解一下
- java.util.ConcurrentModificationException详解
- vivo y73s参数配置 vivo Y73s多少钱