Что сделать, когда необходимо сохранить (очень) большое количество?

Вы можете столкнуться с проблемами, используя поплавки. Самый простой способ сделать это - добавить еще один контейнер вокруг всего, а затем использовать flexbox.

HTML

<div class="icon-container">
  <div class="container">
    <img src="https://cdn.iconscout.com/icon/free/png-256/avatar-375-456327.png" class="image" alt="Avatar" style="width:200px">
    <div class="middle">
      <div class="text">Avatar sample</div>
    </div>
  </div>
  <div class="container">
    <img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcREEGUm8xTq6g_39HvAO-LDynq64MqzfEyHenC3E5Sz0Ci5DWck" class="image" alt="Avatar" style="width:200px">
    <div class="middle">
      <div class="text">Avatar sample 2</div>
    </div>
  </div>
</div>

CSS:

.icon-container {
  display: flex;
}
8
задан Zero Piraeus 22 January 2015 в 08:16
поделиться

3 ответа

Класс BigInteger похож на него, мог бы быть тем, что Вы ищете.

20
ответ дан 3 November 2019 в 12:56
поделиться

Используйте BigInteger. Вот пример от книжных Примеров Java вкратце, который включает вычислительные факториалы с кэшированием.

import java.math.BigInteger;
import java.util.ArrayList;

/*
 * Copyright (c) 2000 David Flanagan.  All rights reserved.
 * This code is from the book Java Examples in a Nutshell, 2nd Edition.
 * It is provided AS-IS, WITHOUT ANY WARRANTY either expressed or 
 * implied. You may study, use, and modify it for any non-commercial 
 * purpose. You may distribute it non-commercially as long as you 
 * retain this notice. For a commercial use license, or to purchase 
 * the book (recommended), visit 
 * http://www.davidflanagan.com/javaexamples2.
 */

/**
 * This program computes and displays the factorial of a number 
 * specified on the command line. It handles possible user input 
 * errors with try/catch.
 */
public class FactComputer {
  public static void main(String[] args) {
    // Try to compute a factorial.
    // If something goes wrong, handle it in the catch clause below.
    try {
      int x = Integer.parseInt(args[0]);
      System.out.println(x + "! = " + Factorial4.factorial(x));
    }
    // The user forgot to specify an argument.
    // Thrown if args[0] is undefined.
    catch (ArrayIndexOutOfBoundsException e) {
      System.out.println("You must specify an argument");
      System.out.println("Usage: java FactComputer <number>");
    }
    // The argument is not a number. Thrown by Integer.parseInt().
    catch (NumberFormatException e) {
      System.out.println("The argument you specify must be an integer");
    }
    // The argument is < 0. Thrown by Factorial4.factorial()
    catch (IllegalArgumentException e) {
      // Display the message sent by the factorial() method:
      System.out.println("Bad argument: " + e.getMessage());
    }
  }
}

/**
 * This version of the program uses arbitrary precision integers, so it 
 * does not have an upper-bound on the values it can compute. It uses an 
 * ArrayList object to cache computed values instead of a fixed-size 
 * array. An ArrayList is like an array, but can grow to any size. The 
 * factorial() method is declared "synchronized" so that it can be safely 
 * used in multi-threaded programs. Look up java.math.BigInteger and
 * java.util.ArrayList while studying this class.
 * Prior to Java 1.2, use Vector instead of ArrayList
 */

class Factorial4 {
  protected static ArrayList table = new ArrayList(); // create cache
  static { // Initialize the first element of the cache with !0 = 1.
    table.add(BigInteger.valueOf(1));
  }

  /** The factorial() method, using BigIntegers cached in a ArrayList */
  public static synchronized BigInteger factorial(int x) {
    if (x < 0)
      throw new IllegalArgumentException("x must be non-negative.");
    for (int size = table.size(); size <= x; size++) {
      BigInteger lastfact = (BigInteger) table.get(size - 1);
      BigInteger nextfact = lastfact.multiply(BigInteger.valueOf(size));
      table.add(nextfact);
    }
    return (BigInteger) table.get(x);
  }

  /**
   * A simple main() method that we can use as a standalone test 
   * program for our factorial() method.
   */
  public static void main(String[] args) {
    for (int i = 0; i <= 50; i++)
      System.out.println(i + "! = " + factorial(i));
  }
}
14
ответ дан 3 November 2019 в 12:56
поделиться

java.lang. BigInteger или java.lang. BigDecimal

1
ответ дан 3 November 2019 в 12:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: