Fischer-Bayern.de
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Kleines Rätsel

 
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript X
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Wolle-77
•--->
•--->


Anmeldedatum: 25.02.2003
Beiträge: 447
Wohnort: Geldern

BeitragVerfasst am: 15.05.2009 - 15:41    Titel: Kleines Rätsel Antworten mit Zitat

Hallo, ich stehe vor einem kleinen Rätsel.

Schaut euch mal folgenden Dreizeiler an:

Code:
set teiler to {1, 3, 9, 27, 81}
set anz to (count items of teiler)
return {item ((anz / 2) as integer) of teiler, item (((anz / 2) + 1) as integer) of teiler}


Heraus kommt (am Rande bemerkt: das erwünschte Ergebnis) {3, 27} heraus.

Aber warum ist AppleScript hier scheinbar mitdenkend und macht aus dem (5 geteilt durch 2) eine 2 und bei +1 eine 4?

Heraus kommt 2,5 – was dann als integer entweder {2, 3} oder {3, 4} ergeben müßte, oder?
_________________
Martin Wolter
--
Apple rocks the planet!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Wolle-77
•--->
•--->


Anmeldedatum: 25.02.2003
Beiträge: 447
Wohnort: Geldern

BeitragVerfasst am: 15.05.2009 - 15:56    Titel: Antworten mit Zitat

Hm, ich glaube, ich habe den entscheidenden Punkt schon gefunden:

AppleScripts interne Rundung mag offenbar von Haus aus keine ungeraden Zahlen:

Code:
repeat with i from 0 to 20
   log (i + 0.5) as integer
end repeat


Das ergibt:
(*0*)
(*2*)
(*2*)
(*4*)
(*4*)
(*6*)
(*6*)
(*8*)
(*8*)
(*10*)
(*10*)
(*12*)
(*12*)
(*14*)
(*14*)
(*16*)
(*16*)
(*18*)
(*18*)
(*20*)
(*20*)
...

Warum ist das bloß so?
_________________
Martin Wolter
--
Apple rocks the planet!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
ShooTerKo
•--->
•--->


Anmeldedatum: 21.03.2006
Beiträge: 221
Wohnort: Hamburg

BeitragVerfasst am: 16.05.2009 - 21:32    Titel: Antworten mit Zitat

Ist ja echt ein Hammer, aber tatsächlich auch dokumentiert:
http://books.google.com/books?id=6YpoLXJBIpcC&pg=PA46&lpg=PA46&dq=applescript+real+to+integer+coercion&source=bl&ots=xLp1Wbuvjd&sig=4e6pUz-LttCVYOxQJ_0DNxjxzXs&hl=de&ei=oxMPStL9HMK__Qao8dnCBA&sa=X&oi=book_result&ct=result&resnum=9

Zitat:
This is done to minimize the accumulation of errors that can occur when many values get rounded.


Wieder etwas gelernt Smile

CU
ShooTerKo
_________________
"It is a mistake to think you can solve any major problems just with potatoes." - Douglas Adams
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
spazek
•-->
•-->


Anmeldedatum: 24.02.2007
Beiträge: 50

BeitragVerfasst am: 16.05.2009 - 21:46    Titel: Antworten mit Zitat

Hallo!
Das Zitat ist so nicht wirklich die ganze Erklärung.

Googelt doch bitte mal nach
Nearest integer function

(Und glaubt nicht, daß ich was von Mathe verstehe, nur weil ich das - zufälligerweise - kenne)

Gruß
Spazek
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript X Alle Zeiten sind GMT + 2 Stunden
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2002 phpBB Group
Deutsche Übersetzung von phpBB.de


AppleScript für absolute Starter