public Numeration(OptionNumeration options) { top = new PortionDizaines(new PortionVicesimale()); if (options.HasFlag(OptionNumeration.SoixanteDix)) { top = new PortionSoixanteDix(top); } if (options.HasFlag(OptionNumeration.QuatreVingts)) { top = new PortionQuatreVingts(options.HasFlag(OptionNumeration.QuatreVingtDix), top); } top = new PortionMilliers(new PortionCentaines(top)); var listePrefixes = "m,b,tr".Split(','); var listeSuffixes = "on,ard".Split(','); var puissance = 1_000_000L; foreach (var prefixe in listePrefixes) { foreach (var suffixe in listeSuffixes) { top = new PortionMillionsATrillions($"{prefixe}illi{suffixe}", puissance, top); puissance *= 1000; } } }
public PortionDizaines(PortionNombre suivant) : base(10, seuil: 17, suivant: suivant) { }
public PortionPuissanceDe10(long puissance, PortionNombre suivant) : base(suivant) { seuil = this.puissance = puissance; }
public PortionPuissanceDe10(long puissance, long seuil, PortionNombre suivant) : base(suivant) { this.puissance = puissance; this.seuil = seuil; }
public PortionNombre(PortionNombre suivant) { this.suivant = suivant; }
public PortionMilliers(PortionNombre suivant) : base(1000, suivant) { }
public PortionMultiplePuiss10(long puissance, PortionNombre suivant) : base(puissance, suivant) { }
public PortionCentaines(PortionNombre suivant) : base(100, suivant) { }
public PortionQuatreVingts(bool vicesimal, PortionNombre suivant) : base(vicesimal ? 20 : 10, seuil: 80, suivant: suivant) { }
public PortionSoixanteDix(PortionNombre suivant) : base(20, seuil: 60, suivant: suivant) { }