java解惑(一)—表达式之谜
来源:互联网 发布:淘宝生意参谋标准版 编辑:程序博客网 时间:2024/04/19 08:20
1.奇偶性判断
问题:用以下方法判断参数是否为奇数可行吗?
public class IsOdd { public static void main(String[] args) { int i=11,j=-11; System.out.println(i%2==1); System.out.println(j%2==1); }}
注:以上方式对正整数没有任何问题,对负数则不合适
原因:
java对于取余运算符(%)的定义为:对于所有int数值a和所有非零int数值b,都满足如下恒等式:
(a / b) * b + (a % b) == a
当取余操作返回一个非零的结果时,它与左操作数具有相同的正负号,因此负整数模2的余数总数-1而非1.
解决方法:
1.一般常用方法:
i%2!=0
2.性能优化方法
(i&1)!=0
2.浮点数问题
问题:以下方式会得到精度为2的浮点数吗?
public static void main(String[] args) { System.out.println(2.00-1.10); }
原因:
1.1这个数字不能精确表达为一个double,更一般的说,并不是所有的小数可以用二进制浮点数表示。
解决方法:
1.使用int或long整型
2.使用精确小数预算的BigDecimal,注意BigDecimal要使用BigDecimal(String)而不是BigDecimal(double).
System.out.println(new BigDecimal("2.00").subtract(new BigDecimal("1.10")))
0 0
- java解惑(一)—表达式之谜
- Java解惑一:表达式之谜
- Java解惑--一、表达式之谜
- Java解惑学习有感(一)---表达式之谜
- 《java解惑》读书笔记1——表达式之谜
- 《Java 解惑》 第二章 表达式之谜
- 《java解惑》--表达式之谜
- 【笔记】Java解惑 表达式之谜
- java解惑之表达式之谜(谜题1)
- java解惑之表达式之谜(谜题2)
- java解惑之表达式之谜(谜题3)
- java解惑之表达式之谜(谜题4)(
- java解惑之表达式之谜(谜题5)
- java解惑之表达式之谜(谜题6)
- java解惑之表达式之谜(谜题7)
- java解惑之表达式之谜(谜题8)
- java解惑之表达式之谜(谜题9)
- java解惑之表达式之谜(谜题10)
- HTML5基础--新的选择器收集
- 算法竞赛入门经典 第二版 习题6-2 S树 S-Trees uva712
- 巴什博弈
- 知识点
- 欧拉函数
- java解惑(一)—表达式之谜
- RecyclerView嵌套问题ScrollView
- 自定义View起步:自定义属性二
- 服务器、客户端实例(C#)
- 【数据结构与算法】带权有向图
- 通讯录管理软件的设计C++实现(含源代码)
- 2017第八届蓝桥杯C/C++ B组省赛题解
- NodeMCU读取dht11温湿度网页显示
- MySQL语法知识点