如何在java中表达一个数在正负百分之二十间浮动
2个回答
展开全部
以int类型为例。10的浮动范围+-20%,那么就是8~12
-10的浮动范围+-20%,那么就是-12~-8
参考核心代码
public static int fun1(int x,double fd) {
int y = (int) (Math.random() * (x + (x >= 0 ? 1 : -1)) * fd) * (Math.random() > 0.5 ? 1 : -1);
return x + y;
}
完整的代码
public class Demo {
public static void main(String[] args) {
double fd= 0.2;//浮动的范围
int x = 10;//需要浮动的数字
//int x = -10;
for (int i = 0; i < 50; i++) {//循环50次,方便查看浮动的结果
System.out.println(fun1(x,fd));//调用方法一
//System.out.println(fun2(x,fd));//调用方法二
}
}
//方法一:写法比较简洁,不太好理解
public static int fun1(int x,double fd) {
int y = (int) (Math.random() * (x + (x >= 0 ? 1 : -1)) * fd) * (Math.random() > 0.5 ? 1 : -1);
return x + y;
}
//方法二:写法比较啰嗦,但是好理解
public static int fun2(int x,double fd){
int y;
int num;
if(x>=0){
y = (int)(Math.random()*(x+1)*fd);
}else{
y = (int)(Math.random()*(x-1)*fd);
}
double z = Math.random();
if(z>0.5){
num = x+y;
}else{
num = x-y;
}
return num;
}
}
运行输出
浮动后的值是:11
浮动后的值是:10
浮动后的值是:12
浮动后的值是:10
浮动后的值是:10
浮动后的值是:8
....
展开全部
import java.util.Scanner;import java.lang.System;public class MyMain { public static void main(String[] args) { int positive1=0;//正数 positive number 负数 Negative int Negative1=0;//正数 positive number 负数 Negative int zero1.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |