parce que quand on en est à coder des flottants, il est temps de passer à un 
truc un peu moderne, style ruby ou python ?

Le 20 mars 2013 à 15:02, Christian Pélissier <christian.peliss...@onera.fr> a 
écrit :

> Bonjour,
> 
> Sous Solaris 10 ksh est un ksh88 dans lequel le type flottant n'existe
> pas.
> 
> ksh93 existe sous la forme du desktop korn de CDE.
> Hélas c'est une version 93d ancienne qui comporte pas mal de bugs.
> 
> On a par exemple 93t+ dans RHEL 6/CentOS 6/SL 6 et 93u dans Solaris
> 11.1. Il est également présent dans SuSE.
> 
> Par exemple celui-ci découvert en développant un soft pour repérer les
> gros downloader qui dévorent la bande passante d'un proxy (analyse des
> logs) :
> 
> # /usr/dt/bin/dtksh
> # typeset -F2 SCORE
> # SCORE=2000000000.0
> 
> # echo $(( SCORE + 2000000000 ))
> 4000000000                                   << OK
> 
> # echo $(( SCORE + 2147483647 ))
> 4147483647                                   << OK
> 
> echo $(( SCORE + 2147483648 ))
> -147483648                                   << faux : float + int = float
> 
> # echo $(( SCORE + 5000000000 ))
> 2705032704                                   << faux
> 
> # echo $(( SCORE + 5000000000.0 ))           << contournement 
> 7000000000
> 
> Si la valeur à ajouter est dans une variable SIZE on contourne le bug en
> faisant :
> 
> SIZE=$SIZE.0
> echo $(( SCORE + SIZE ))
> 
> Si l'entier ajouté dépasse 2^31-1 dtksh fait n'importe quoi.
> 
> Mais pourquoi donc Oracle ne backporte-t-il pas THE shell ksh93u dans
> Solaris 10 beaucoup plus fiable que bash et consort qui sont pleins de
> limitations !!!
> 
> 
> 
> PS.
> 
> Avec les ksh récents qui tiennent compte de la locale, il faut utiliser
> . ou , pour le séparateur des décimales.
> 
> 
> 
> -- 
> Christian Pélissier
> Office National d'Études et de Recherches Aérospatiales
> BP 72 92322 Chatillon
> Tel: 33 1 46 73 44 19, Fax: 33 1 46 73 41 50
> 
> 
> -- 
> _______________________________________________
> Liste (Open)Solaris francophone
> ug-fosug@opensolaris.org
> http://www.mail-archive.com/ug-fosug@opensolaris.org/

-- 
_______________________________________________
Liste (Open)Solaris francophone
ug-fosug@opensolaris.org
http://www.mail-archive.com/ug-fosug@opensolaris.org/

Répondre à