|
Publicité ' | ||||||||||||||||||||||||
|
|
#21 |
|
Expert Confirmé
![]() Inscription : janvier 2006 Messages : 2 345 ![]() |
On peut discuter des calculs avec virgules alors aussi...
0.1 + 0.2 par exemple qui a une chance sur 3 de te donner autre chose que 0.3 ! Et je trouve super-pénible de devoir passer par des BigDecimal initialisés avec des objets de type String pour avoir un calcul correct.
__________________
Ma page dvp.com
|
|
|
00
|
|
|
#22 |
![]() ![]() Inscription : novembre 2006 Messages : 5 064 ![]() |
C'est clair que sur les calculs en float, y a de quoi dire...
Dans tous les cas, personnellement, je trouve dommage que l'overflow ne provoque pas d'erreur. Comme dit dans l'un des post, pour retrouver l'erreur, bonjour le travail ! Et je ne pense pas qu'on puisse prévoir à l'avance tout ce qu'un utilisateur pourra saisir... Pire, il se trompe, mais ça passe quand même (en faussant les données au passage) A+ |
|
|
00
|
|
|
#23 | |
|
Membre régulier
![]() Inscription : mai 2007 Messages : 116 ![]() |
Citation:
Un int peut contenir 2 puissance 32 soit environ 4300 millions. Un long peut contenir 2 puissance 64 soit environ 18 millions de millions de millions. Desoler mais ce n'est pas un ecran qui fera sortir des limites, à moins que celui ci ne recouvre Saturne, et encore. Bien sur il ne faut pas prendre un byte ou un short pour faire les calculs Et toc |
|
|
|
00
|
|
|
#24 | ||
|
Expert Confirmé Sénior
![]() ![]() |
Citation:
La valeur max de int, c'est 2 puissance 31 moins 1, soit 2'147'483'647. La preuve avec la javadoc : Citation:
__________________
Tous mes tutos (Java, PHP, SQL-Server, Hardware) - Mon blog anglais JTheque - Site - Forum |
||
|
00
|
|
|
#25 | |
![]() ![]() |
Citation:
__________________
Développeur Java / Flex à Shanghai, Chine mes publications Mon dernier tutoriel : Messages Quit IRC : explications La rubrique IRC recrute des redacteurs : contactez moi Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE] |
|
|
|
00
|
|
|
#26 |
![]() ![]() Inscription : novembre 2006 Messages : 5 064 ![]() |
|
|
|
00
|
|
|
#27 |
![]() ![]() Inscription : juin 2006 Messages : 6 929 ![]() |
Pour les histoires de performances, ce serait au moins sympathiques qu'il existe une option de la JVM pour lancer des exceptions d'overflow en cas d'overflow...
Si le bug est reproductible, il serait alors possible d'activer cette option pour repérer plus rapidement l'erreur (quitte à avoir une application 10 fois plus lente en environnement de test pour débugger ce type de problème).
__________________
Je ne répondrai à aucune question technique en privé |
|
|
00
|
|
|
#28 | |
![]() ![]() Inscription : novembre 2006 Messages : 5 064 ![]() |
Citation:
Dans tous les cas, l'option de la jvm ne me semble pas bonne, il faudrait déjà savoir qu'on est en présence d'un problème lié à l'overflow pour le corriger. Quel sont les cas où l'overflow serait utilile ? Moi, j'en vois pas |
|
|
|
00
|
|
|
#29 | |
![]() ![]() Inscription : juin 2006 Messages : 6 929 ![]() |
Citation:
Evidemment, il est plus intéressant qu'un overflow soit tout le temps détecté, mais as tu une idée de la dégradation des performances que cela engendre ? (moi non, mais si tu me dis que ça change rien alors c'est sûr que c'est mieux que ce soit tout le temps présent )
__________________
Je ne répondrai à aucune question technique en privé |
|
|
|
00
|
|
|
#30 | |
![]() ![]() Inscription : novembre 2006 Messages : 5 064 ![]() |
Citation:
|
|
|
|
00
|
|
|
#31 |
|
Membre régulier
![]() Inscription : mai 2007 Messages : 116 ![]() |
Baptiste Wicht oui je parlais en unsigned. Tu m'en voudras pas si ya une d'un coefficent 2. T'a fait une erreur d'un coefficient 8000 :
Menfin aucune importance |
|
|
00
|
|
|
#32 | ||
|
Membre Expert
![]() ![]() Inscription : novembre 2005 Messages : 1 187 ![]() |
Et si on allait voir ce que font les concurrents?
En C# en l'occurrence, les overflows sont très bien gérés. Une exception est lancée en cas de dépassement de capacité lors d'une opération arithmétique ou d'un cast. Il est ainsi possible d'activer ou de désactiver la vérification du dépassement de capacité d'une opération arithmétique particulière ou d'un cast via les 2 mot clés spécifiques checked et unchecked. Petit exemple d'utilisation (tiré de la msdn): Code :
Ca doit bien être faisable en Java, non? Edit : j'ai oublié de préciser, par défaut (pas de mot clé checked ou unchecked mis devant une opération, option checked du compilo non utilisée), C# ne contrôle pas les dépassement de capacité (mode unchecked donc).
__________________
We are facing a dangerous period ahead. If we do not stop, correct and change some of these wrongdoings, now, we are all going to suffer. Either things that we make will overtake us, or nature will take over. Earthquake, flood, rain, severe drought, severe winter, lightning destruction, great wind destruction; These things will warn us that we are not following the law of the great spirit. Extrait du documentaire Broken Rainbow (1985) |
||
|
|
00
|
|
|
#33 |
|
Membre régulier
![]() Inscription : février 2007 Messages : 147 ![]() |
Je ne connais pas la norme IEEE 754. Je vais quand même essayer de faire avancer le débat.
Within an FP-strict expression, all intermediate values must be elements of the float value set or the double value set, implying that the results of all FP-strict expressions must be those predicted by IEEE 754 arithmetic on operands represented using single and double formats. Within an expression that is not FP-strict, some leeway is granted for an implementation to use an extended exponent range to represent intermediate results; the net effect, roughly speaking, is that a calculation might produce “the correct answer” in situations where exclusive use of the float value set or double value set might result in overflow or underflow. JLS3 §15.4 |
|
|
00
|
|
|
#34 | |||
|
Expert Confirmé
![]() Inscription : avril 2002 Messages : 2 299 ![]() |
Citation:
Code :
- Une option à la ligne de commande pour activer/désactiver la vérification(désactivé par défaut pour la compatibilité, même si je trouverai plus sur que ce soit activé par défaut), - Tout en conservant la possibilité de spécifier individuellement le comportement des variables dont on attend un comportement particulier, comme la variable checksum de mon exemple. |
|||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com