开发者社区> 问答> 正文

demo中的bug报告

payment生成payAmout时会因为double强制转为int,后产生0,而让Random.nextInt()抛出异常


list[0].payAmount = rand.nextInt((int) (orderMessage.getTotalPrice() / 2));
list[1].payAmount = orderMessage.getTotalPrice() - list[0].payAmount;

展开
收起
lovelyj 2016-06-23 16:51:58 3975 0
3 条回答
写回答
取消 提交回答
  • 回 2楼cmptmn的帖子
    你确定这么做对么,如果orderMessage.totalPrice < 2呢?
    2016-06-24 19:51:18
    赞同 展开评论 打赏
  • Redemo中的bug报告
    我也发现了这个问题把:
    list[0].payAmount = rand.nextInt((int) (orderMessage.getTotalPrice() / 2));
    改为:
    list[0].payAmount = rand.nextInt((int) ((orderMessage.getTotalPrice() + 2) / 2));
    就OK了

    -------------------------

    Redemo中的bug报告
    是可能会出现负数据但不影响你的测试结果,我一直这样测试发现有问题。

    -------------------------

    Redemo中的bug报告
    说错,应该是:可能会生成 payAmount为0的PaymentMessage,但不影响你的测试结果。
    2016-06-24 15:18:05
    赞同 展开评论 打赏
  • I like to program and write stuff, making things a reality always make me excited. Now, I am a Apache committer.
    赞,多谢反馈。
    2016-06-23 18:58:02
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载