in src/main/java/org/apache/nifi/time/DurationFormat.java [139:160]
static List<Object> makeWholeNumberTime(double decimal, TimeUnit timeUnit) {
// If the value is already a whole number, return it and the current time unit
if (decimal == Math.rint(decimal)) {
final long rounded = Math.round(decimal);
return Arrays.asList(new Object[]{rounded, timeUnit});
} else if (TimeUnit.NANOSECONDS == timeUnit) {
// The time unit is as small as possible
if (decimal < 1.0) {
decimal = 1;
} else {
decimal = Math.rint(decimal);
}
return Arrays.asList(new Object[]{(long) decimal, timeUnit});
} else {
// Determine the next time unit and the respective multiplier
TimeUnit smallerTimeUnit = getSmallerTimeUnit(timeUnit);
long multiplier = calculateMultiplier(timeUnit, smallerTimeUnit);
// Recurse with the original number converted to the smaller unit
return makeWholeNumberTime(decimal * multiplier, smallerTimeUnit);
}
}