Je stocke une valeur longue vient du système backend et j'ai dû le convertir en flottant parce que l'un des api tiers comprend seulement float. Maintenant, quand je relis le flotteur et que j'essaie de le reconvertir longtemps, je reçois un nombre plus important (certaines fois j'ai vu plus petit aussi) que ce que j'avais.float à long conversion augmentant la valeur
Ma question est comment puis-je récupérer le numéro d'origine en longueur. Je suis heureux d'ajouter toute logique d'arrondi si nécessaire
public class Main {
public static void main(String[] args) {
long item = 1502028000;
System.out.println(String.format("item -> %d",item));
float floatItem = item;
System.out.println(String.format("floatItem -> %f",floatItem));
long resultItem = (long)floatItem;
System.out.println(String.format("resultItem -> %d",resultItem));
}
}
Ci-dessous la sortie. J'ai besoin de mon numéro d'origine qui est 1502028000 dans ce cas.
item -> 1502028000
floatItem -> 1502028032.000000
resultItem -> 1502028032
Vous ne pouvez pas flotter à long est une conversion avec perte (également à long flottant). –
Pouvez-vous utiliser 'double' à la place? – shmosel
Non seulement j'ai l'option d'utiliser float. Je ne peux pas modifier l'API tierce. Pouvons-nous faire un peu de Math.round ou quelque chose pour obtenir le numéro d'origine – Bulu