Par exemple, si le type float 2.0000000000 est converti en int, le stockage sous-jacent doit être 1.999999999999999. Il y a une limite de précision, donc lorsque je convertis ce nombre en int, je pense qu'il deviendra 1 (la partie décimale est supprimée)
. Mais j'ai testé plusieurs langages et ils sont tous corrects (php, java, go, js)
php:
js:
aller :
java :
.2.0
peut être exprimé avec précision par des nombres à virgule flottante. Il ne devrait y avoir aucun problème avec ce nombreLes décimales sont stockées en notation scientifique, pas 1,999999..., elles sont traitées lors du transfert forcé, pas directement converties en type
D'une manière générale, lors de la conversion d'une faible précision en haute précision, comme int->float, lors de la conversion d'une haute précision en basse précision, vous perdrez en précision et les résultats des données peuvent devenir très surprenants.
Quelques exemples classiques
(int)(0.57 * 100)
(int)((0.1+0.7)*10)
Cela n'a aucune signification pratique. Si cela fonctionne vraiment comme vous le pensez, la personne qui a conçu ce langage le prendra certainement en considération
Une compréhension détaillée nécessite certains principes d’assemblage, alors ne vous laissez pas trop emporter
Puis-je vous demander où vous avez téléchargé ce panneau de programmation ? Ça a l'air bien