java:按照比例拆分一个float(double)数据

本文介绍如何在Java环境中,根据给定的浮点数和比例,生成一个数组,使得数组元素之和等于原始浮点数,并且每个元素在指定基数范围内浮动。例如,将一个数拆分为4个部分,对应比例2:4:3:1,并确保每个部分在16到32之间变化。
摘要由CSDN通过智能技术生成

我的测试环境需要造一堆数据,而且要求每天根据不同时间段(单位为小时)去生成不同比例的数据,比如0-8,9-12,13-17,18-23,如果全天的数据之和是100,则根据这拆分的4个时间区间,每个时间区间全天所占数据之和的比例是2:4:3:1。

难点:

1.如何输入一个浮点数A和拆分个数n,返回一个数组

2.数组中这n个元素之和,等于输入的这个浮点数A

3.还要保证数组中每个元素的大小要在某一个基数如20之间上下浮动(浮动范围为0.8 - 1.6),即:最小为20*0.8,最大为20*1.6

import com.alibaba.fastjson.JSON;

import java.math.BigDecimal;
import java.math.RoundingMode;

/**
 * @Author: zhanghh
 * @Date: 2021/12/27 17:27
 * @Description:
 */
public class Test {
    
    public static void main(String[] args) {
        for(int i=0; i<9; i++) {
            makeOneDayDate();
        }
    }

    public static void makeOneDayDate() {
        BigDecimal[] jd = new BigDecimal[24];
        BigDecimal[] fd = new BigDecimal[24];
        BigDecimal[] gd = new BigDecimal[24];

        BigDecimal[] dataAr
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值