Java输出问题?程序没有得到理想的结果[格式更新]

时间:2017-11-28 13:19:44

标签: java class object for-loop while-loop

该计划应该通过2至50人的数量,并获得100,000次试验的概率,无论两个人是否会有相同的生日。

import {Permission} from "../models/permission";

这是结果(它从2-50开始),它一直给我零,所以我知道出了什么问题。请帮忙 :) Output

2 个答案:

答案 0 :(得分:0)

尝试

int probability = x / 1000; // 1/100 of the value to get an probability in percent (integer)

float probably =  x / 100000F; //F for a `float` 
double probability = x / 100000.0; //a decimal without a F is a `double`

没有它,这无效:

float probably = x / 100000;

首先,两个整数的除法将像整数一样存储在内存中,然后存储在float / double中。该存储会截断该值。这是在操作中返回最大类型的操作符逻辑:

int * int -> int
int * float -> float
int * double -> double
short * short -> int //that's a trick, int is the minimal value an operation can return

答案 1 :(得分:-1)

int probability=x/100000; always return 0.

将其转换为double probability=x/100000.0;概率值始终小于或等于1。因为x永远不会大于100000.并且还会将one_probability方法的返回类型更改为double