如何在java中表达一个数在正负百分之二十间浮动

 我来答
雪飞潇潇
2017-05-11 · TA获得超过6273个赞
知道大有可为答主
回答量:1968
采纳率:91%
帮助的人:834万
展开全部

以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
....
丁灾后9028
2017-05-10 · TA获得超过153个赞
知道小有建树答主
回答量:215
采纳率:0%
帮助的人:32.6万
展开全部
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.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式