use*_*472 0 java sequence sequence-generators
我有两个值是:
firstval=200.000
Secondval=399.999,
Run Code Online (Sandbox Code Playgroud)
我必须生成一个数字,这样当第一个小数部分应该递增直到999整数部分时,接下来整数部分应该递增,然后小数部分重置为000并开始为新数字递增。这会发生直到399. 喜欢
200.001,200.002.....200.999,201.000,201.002....399.998,399.999"
有一种很好的方法可以使用 Java 8 Stream API 获取所需的数组
(1) 使用双增量
double[] sequence = DoubleStream.iterate(200.0, d -> d + 0.001).limit((int) (1 + (399.999 - 200.0) / 0.001)).toArray();
Run Code Online (Sandbox Code Playgroud)
请注意,对大量双打求和可能会产生一些错误,例如在我的笔记本电脑上,序列中的最后一个数字是399.99899999686227
(2) 更好的方法是生成整数流并将其映射到双精度数:
double[] sequence = IntStream.range(200000, 400000).mapToDouble( i -> i * 0.001).toArray();
Run Code Online (Sandbox Code Playgroud)
在这种情况下,不会累积添加多个双精度数的错误