JS 通过传参的方式输出 ab,java的double乘法精度问题

时间:2021-03-22 21:24:29
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
</head>
<body>
<script>
//fn(param) 传参,如何输出"ab"
function fn(param){
if(param){
console.info("a");
}else{
console.info("b");
}
}
//这个是正确的,不过在控制台分行输出"ab"
//fn(fn(true));
//如果硬要一行输出"ab",可参考这个方法
fn(!function{
console.info("ab");
console.info=function{return;}
});
</script>
</body>
</html>

效果图:

JS 通过传参的方式输出 ab,java的double乘法精度问题

本文为头条号作者发布,不代表今日头条立场。


项目中实际的代码,我们实际的金额单位是元,精确到分,另外一个系统传递的时候需要的是整数,就是分,我们就简单乘以100转换了下,结果发现是有问题的:

public static void main(String[] args) {
double payMoney = Double.valueOf("1253.59");
String result = String.valueOf((int)(payMoney * 100));
System.out.println(result);
}


结果是:125358

因为1253.59*100 的结果是 125358.99999999999

还比较没有想到乘以100这种都有问题。

解决的方法是用BigDecimal,就不多说了。

本文为头条号作者发布,不代表今日头条立场。