关闭

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

177人阅读 评论(0) 收藏 举报
<!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

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


项目中实际的代码,我们实际的金额单位是元,精确到分,另外一个系统传递的时候需要的是整数,就是分,我们就简单乘以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,就不多说了。

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


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:485888次
    • 积分:7406
    • 等级:
    • 排名:第2967名
    • 原创:25篇
    • 转载:1642篇
    • 译文:0篇
    • 评论:85条
    最新评论