项目中有一个小需求,两个整数相除,结果需要保留两位小数,即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保留两位小数的方法相关推荐

  1. java乘法口诀表_用Java语言打印九九乘法口诀表

    打印九九乘法口诀表. 程序: package myclass; public class myclass { public static void main(String[] args) { for( ...

  2. java 乘法保留两位小数_java.math.BigDecimal保留两位小数,保留小数,精确位数

    java保留两位小数问题: 方式一(四舍五入形式保留两位小数,注意模式ROUND_HALF_UP): 四舍五入 double   f   =   111231.5585; BigDecimal   b ...

  3. java.math.BigDecimal保留两位小数,保留小数,精确位数

    http://blog.csdn.net/yuhua3272004/article/details/3075436 使用java.math.BigDecimal工具类实现   java保留两位小数问题 ...

  4. 用java编写保留两位小数_Java保留两位小数的几种写法总结

    摘要:这篇Java开发技术栏目下的"Java保留两位小数的几种写法总结",介绍的技术点是"Java保留两位小数.保留两位小数.两位小数.Java.小数.总结", ...

  5. java保留两位小数(java保留两位小数)

    197保留两位小数是多?1.197保留两位小数是多少 1.20 P.S. 你的支持是我坚持的动力~,点下好评吧,亲!!! 两位小数的积是3?两位小数的积是3.872,保留两位小数是,保留 选中区域,点 ...

  6. java int 保留两位小数_java保留两位小数

    java保留两位小数问题: 方式一: 四舍五入 double   f   =   111231.5585; BigDecimal   b   =   new   BigDecimal(f); doub ...

  7. java int 保留两位小数_java 保留两位小数的几种方法

    1.代码: import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.NumberFormat; pu ...

  8. java 两位小数_java保留两位小数及多位小数的方法 | 夕辞

    在JAVA代码开发中,我们经常用到对小数的处理,很多场景下要保留几位小数,比如在支付场景和订单中对金额的处理中,这个有很多方法,以下就介绍下常用的几种方法,我们以保留两位小数为例. [推荐]第一种:S ...

  9. java拼接sql保留两位小数_SQL 保留两位小数的实现方式

    问题: 客户要求,跟金额相关的数据,打印出来要保留两位小数,比如:13.2/13.200要显示为13.20: 分析: 首先查看数据库中的数据定义,均为decimal(12,2) ,直接通过数据库查询的 ...

  10. Java 十进制正小数转为其他进制正小数(小数点后保留10位)

    N进制小数 题目描述: 编写程序实现将任意10进制正小数m转换成n进制的正小数,小数点后保留10位小数 解答要求: 时间限制1000ms,内存限制64ms 输入: 输入包含两个数m.n,用空格隔开.输 ...

最新文章

  1. 【温故知新】HTML学习笔记(下)
  2. The Apache Tomcat installation at this directory is version,tomcat
  3. python读txt转array_python将txt文件读入为np.array的方法
  4. TensorFlow中的多线程
  5. Android 学习心得(2)——Android内置数据库SQLite
  6. 结构体符号重载(简单版+手动扩栈方法)
  7. 用Feed43为随意站点定制RSS feed教程~
  8. java aes cbc iv_关于AES加解密中CBC模式的IV初始化向量的安全性问题
  9. 软件测试之因果图分析法
  10. 【技术】客服服务开发
  11. 看刘未鹏先生的博客的一些摘记
  12. 域名注册查询API接口工具
  13. 基于单片机的模拟电磁曲炮设计
  14. 纽约州立大学环境与林业学院计算机科学专业,纽约州立大学环境与林业科学 治理环境是全球需要面对的问题...
  15. lifeifei翻译目录
  16. findIndex()
  17. 福特FORD EDI流程指南
  18. 中国软件缺少核心技术 自主创新是关健
  19. 美团点评技术与算法文章汇总,设计算法、前后端、客户端、小程序等
  20. 15个漂亮的国外Flash网站模板下载

热门文章

  1. 远程桌面由于以下原因之一无法连接到远程计算机(可能是由于CredSSP加密……)
  2. 《红楼梦》23道经典菜制作方法, 有原文,有出处(转)
  3. shuf 随机选取txt文件特定行数
  4. 无法上网dns转发_从DoH到ODoH,运营商再也不能搞DNS劫持了
  5. 怎么更改mac电脑的系统语言,Mac电脑的语音设置在哪
  6. 服务器整体爆率如何修改,土豪玩家是怎么玩游戏的?一口气收购全区物资,逼得官方修改爆率!...
  7. spring-boot-starter-data-redis介绍
  8. win11怎么使用录屏功能?两个小技巧了解一下
  9. java.util.ConcurrentModificationException详解
  10. vivo y73s参数配置 vivo Y73s多少钱