code: public MachineTime<U> multipliedBy(double factor) {
  
          if (factor == 1.0) {
              return this;
          } else if (factor == 0.0) {
              if (this.scale == POSIX) {
                  return cast(POSIX_ZERO);
              } else {
                  return cast(UTC_ZERO);
              }
          } else if (Double.isFinite(factor)) {
              double len = this.toBigDecimal().doubleValue() * factor;
              MachineTime<?> mt;
              if (this.scale == POSIX) {
                  mt = MachineTime.ofPosixSeconds(len);
              } else {
                  mt = MachineTime.ofSISeconds(len);
              }
              return cast(mt);
          } else {
              throw new IllegalArgumentException("Not finite: " + factor);
          }
  
      }
docs: /*[deutsch]
  <p>Multipliziert diese Dauer mit dem angegebenen Dezimalfaktor. </p>
  
  <p>Wenn mehr Kontrolle &uuml;ber das Rundungsverfahren gebraucht wird, gibt es die
  Alternativen {@link #multipliedBy(long)} und {@link #dividedBy(long, RoundingMode)}. </p>
  
  @param   factor  multiplicand
  @return  changed copy of this duration
  @throws  IllegalArgumentException if given factor is not a finite number