.. JeBigDecimal - comment faire ce calcul en Java
target = targetmax/difficulté
targetmax = 26959535291011309493156476344723991336010898738574164086137773096960
difficulté = 14484,162361
target = 26959535291011309493156476344723991336010898738574164086137773096960/14484,162361
target = 186131131 5012765306929610463010191006516769515973403833769533170
J'essayé cela en Java comme
double difficulty = 14484.162361;
String targetmaxStr = "26959535291011309493156476344723991336010898738574164086137773096960";
BigDecimal targetmaxd = new BigDecimal(targetmaxStr);
BigDecimal difficultyd = new BigDecimal(difficulty);
BigDecimal targetd = targetmaxd.divide(difficultyd, MathContext.DECIMAL128);
System.out.println("target : " + targetD);
Il imprime
cible: 1.861311315012765229690386592708552E + 63
Je suis vraiment valeur attends:
target = 1861311315012765306929610463010191006516769515973403833769533170
Il est pas un doublon de cette question. –
@MatthewMcPeak Je crois vraiment que c'est. La différence est causée par l'utilisation du constructeur 'BigDecimal (double)' - qui est ce que cette autre question adresse. –
Vous avez raison, c'est une combinaison de problèmes. Créer une difficulté à partir d'un double crée une inexactitude, tout comme les problèmes que j'ai signalés dans ma réponse. Je vais mettre à jour ma réponse pour l'exhaustivité. –