Ana Menü
· Ana Sayfa
· Dosyalar
· Dökümanlar
· Forum
· Günün Resmi
· Haber Arşivi
· WWW Linkleri
· Üye Listesi

     Forumlar

 strncpy ve strncpy_s
 Konu adi : Borland c++ Builder ile Amiral Batti
 Rady10 - YerliOyun
 Kabusta Kaybolmak
 Konsol da programı bekletmek
 Oyun programlama icin hangi programlama dilli ?
 flash! şanlıurfa bilgisayar oyununda(no rapid)
 Sevgilim Olur musun?
 Directx'e başlamak isteyenler bi bakın
 PSP programlama
 Flash tan php
 Bilgisyr oyunu yapmam için üniverstde hangi bölüme girmeliym
 www.arshiv.gen.ms
 Cimg.h ilgilenenler icin
 müttefik oyunu

Konu Disi
 Emraah
 Yeni sitemiz açıldı
 Kalp krizi durumunda ne yapılmalı?
 Oyun sektöründe hangi görevde çalışmak isterdiniz?
 Takım arkadaşı sorunu
 msn de renklı nıck
 pc hata veriyor ! YARDIM!!
 Gülmek isteyenler Buraya
 İnanılmaz hl 2 modu görüntüsü
 Computer Languages History

[ Forumlara Git ]


oyunyapimi.org: Forums

www.oyunyapimi.org :: Başlığı Görüntüle - atof()
 SSSSSS   AramaArama   Kullanıcı GruplarıKullanıcı Grupları   ProfilProfil   LoginLogin 

atof()
Sayfa 1, 2  Sonraki
 
Yeni Başlık Gönder   Cevap Gönder    www.oyunyapimi.org Forum Ana Sayfası -> Programlama Dilleri ve Algoritmalar
Önceki başlık :: Sonraki başlık  
Yazar Mesaj
Black_Knight



Kayıt: Oct 23, 2002
Mesajlar: 286
Nereden: İstanbul/İzmir

MesajTarih: Sun Jul 17, 2005 6:40 pm    Mesaj konusu: atof() Alıntıyla Cevap Ver

Arkadaslar su sizce neden olabilir?

float f = 0.0f;
char szBuffer[10] = "20.2";
f = atof(szBuffer);
printf("%f",f);


Bunu yapinca aldigim cikti su oluyor.
20.200001
Baska rakamlarda da sona bir ekliyor yada bir azaltiyor?
Başa dön
Kullanıcı profilini gör E-Posta'yı gönder Kullanıcının web sitesini ziyaret et MSN Messenger
vmeydaneri



Kayıt: Dec 08, 2004
Mesajlar: 583
Nereden: Ankara

MesajTarih: Sun Jul 17, 2005 6:52 pm    Mesaj konusu: Alıntıyla Cevap Ver

double atof(char *);

acaba atof un sonucu double oldugu icin olmasin?

sadece bir tahmin.Soyle dene birde


float f = 0.0f;
char szBuffer[10] = "20.2";
f = (float)atof(szBuffer);
printf("%f",f);
Başa dön
Kullanıcı profilini gör E-Posta'yı gönder Kullanıcının web sitesini ziyaret et MSN Messenger
vmeydaneri



Kayıt: Dec 08, 2004
Mesajlar: 583
Nereden: Ankara

MesajTarih: Sun Jul 17, 2005 6:56 pm    Mesaj konusu: Alıntıyla Cevap Ver

ha bu arada az once ilk gonderdigini denedim ve cikan sonuc:

20.200000
Başa dön
Kullanıcı profilini gör E-Posta'yı gönder Kullanıcının web sitesini ziyaret et MSN Messenger
vmeydaneri



Kayıt: Dec 08, 2004
Mesajlar: 583
Nereden: Ankara

MesajTarih: Sun Jul 17, 2005 7:06 pm    Mesaj konusu: Alıntıyla Cevap Ver

himm az once win32 uygulamasinda

sprintf(..) ile yazdirdim sonuc : 20.200000

konsol uygulamasinda

printf(..) dedigimde senin dedigin gibi: 20.200001

cikti.

son olarak:
Kod:
   
float f = 0.0f;
char szBuffer[10] = "20000.2";
char yaz[50];
f =atof(szBuffer);
printf("%f",f);

sonuc = 20000.199219


cikti.
Başa dön
Kullanıcı profilini gör E-Posta'yı gönder Kullanıcının web sitesini ziyaret et MSN Messenger
Black_Knight



Kayıt: Oct 23, 2002
Mesajlar: 286
Nereden: İstanbul/İzmir

MesajTarih: Sun Jul 17, 2005 7:17 pm    Mesaj konusu: Alıntıyla Cevap Ver

walla ben anlamadim bisi atof icinde bi hassalik sorunu mu var acaba kesirden sonra yazilani azicik azaltiyor yada buyutuyor.Garip bisi.
double ile denedim yine ayni oldu.
Başa dön
Kullanıcı profilini gör E-Posta'yı gönder Kullanıcının web sitesini ziyaret et MSN Messenger
DG



Kayıt: Mar 06, 2004
Mesajlar: 351
Nereden: Eskişehir

MesajTarih: Sun Jul 17, 2005 9:24 pm    Mesaj konusu: Alıntıyla Cevap Ver

Bu; en temelde FPU'nun kesirli sayı matematiğini nasıl yaptığı ile ilgili olması gerek. Yani bize programcılık mantığı olarak öğretilen "iki kesirliyi == ile karşılaştırmayın, sadece aralarındaki mutlak farkı x gibi bir sayı ile karşılaştırın" olayı. Yani o yüzden kimisinde ,200000 kimisinde 200001
Başa dön
Kullanıcı profilini gör Kullanıcının web sitesini ziyaret et
BabaCONDA



Kayıt: Jun 12, 2005
Mesajlar: 58
Nereden: İstanbul

MesajTarih: Sun Jul 17, 2005 9:32 pm    Mesaj konusu: Alıntıyla Cevap Ver

Black_Knight dostum, derleyicinin ayarlarına bir baksan gerçek sayı(floating point) için ayar vardır. Onu bir karıştırsan . Şuan önümde herhangi bir derleyici olmadığı için bişey söyleyemiyorum.
Veya senin atof sayıları getirirken yolda tekerleği patlatmış olmasın. Very Happy
Başa dön
Kullanıcı profilini gör E-Posta'yı gönder Kullanıcının web sitesini ziyaret et
DG



Kayıt: Mar 06, 2004
Mesajlar: 351
Nereden: Eskişehir

MesajTarih: Sun Jul 17, 2005 9:51 pm    Mesaj konusu: Alıntıyla Cevap Ver

wiki'de neden bazı sayıları, en azından istediğimiz gibi, tanımlayamadığımız hakkında özet bir bilgi var. Yani durum anormal değil. Aynı şekilde bende de oldu.

http://en.wikipedia.org/wiki/Floating_point

Eğer bazı rasyonel sayıların ikilik düzende temsili yapılamıyorsa, derleyicinin bununla yapacak pek bir şeyi olmasa gerek. Bence her halükarda kesin çözüm
Kod:
fabs(x - y) < z
gibi bir şeyler yapmak.
Başa dön
Kullanıcı profilini gör Kullanıcının web sitesini ziyaret et
leblebi



Kayıt: Jan 05, 2004
Mesajlar: 127
Nereden: q3dm17

MesajTarih: Mon Jul 18, 2005 12:48 am    Mesaj konusu: ... Alıntıyla Cevap Ver

DG'nin dedigi dogrudur.
Başa dön
Kullanıcı profilini gör E-Posta'yı gönder Kullanıcının web sitesini ziyaret et
BabaCONDA



Kayıt: Jun 12, 2005
Mesajlar: 58
Nereden: İstanbul

MesajTarih: Mon Jul 18, 2005 11:52 am    Mesaj konusu: Alıntıyla Cevap Ver

Evet arkadaşlar böyle sorunlar kayan noktalı sayılarda v.s. 'de var. VC++ kullanan arkadaşlara Intel'in derleyicisini tavsiye ederim. zira bu tip data kayıpları v.s. gibi şeylerin asm kodlarıyla yapılması için uyarıyor.

K.G....
Başa dön
Kullanıcı profilini gör E-Posta'yı gönder Kullanıcının web sitesini ziyaret et
lucifer



Kayıt: Nov 02, 2002
Mesajlar: 215
Nereden: Istanbool

MesajTarih: Mon Jul 18, 2005 1:44 pm    Mesaj konusu: Alıntıyla Cevap Ver

Alıntı:
zira bu tip data kayıpları v.s. gibi şeylerin asm kodlarıyla yapılması için uyarıyor.


Hmm. Evet. Artik data kayiplarimi asm ile kodlayacagim.
Başa dön
Kullanıcı profilini gör Kullanıcının web sitesini ziyaret et
DG



Kayıt: Mar 06, 2004
Mesajlar: 351
Nereden: Eskişehir

MesajTarih: Mon Jul 18, 2005 2:00 pm    Mesaj konusu: Alıntıyla Cevap Ver

BabaCONDA demiş ki:
Evet arkadaşlar böyle sorunlar kayan noktalı sayılarda v.s. 'de var. VC++ kullanan arkadaşlara Intel'in derleyicisini tavsiye ederim. zira bu tip data kayıpları v.s. gibi şeylerin asm kodlarıyla yapılması için uyarıyor.

K.G....


ASM değil ÖSYM gelse ona bir şey yapamaz. Dillerle değil işlemcinin işleyişiyle ilgili bir şey. Lütfen yazılan şeyleri biraz oku.

Elde sınırlı sayıda {0, 1} var ama R kümesi sonsuz. Aynı şey tamsayılar için de geçerli. Long Long çok büyük bir veri tipi olup pratikte çoğu kişinin tamsayı ihtiyacını karşılasa da bir sınırı var. Neden sence 32-bit'lik işlemcin en çok 4GB Ram adresleyebiliyor (Hileler veya standartların dışına çıkmak olasıdır. 16 bitlik işlemciler zamanında iki register bir arada kullanılarak 2^16'dan büyük adresleme yapılmış ama biraz zorlama bir yaklaşım)
Başa dön
Kullanıcı profilini gör Kullanıcının web sitesini ziyaret et
BabaCONDA



Kayıt: Jun 12, 2005
Mesajlar: 58
Nereden: İstanbul

MesajTarih: Mon Jul 18, 2005 2:37 pm    Mesaj konusu: Alıntıyla Cevap Ver

dostum hele sen bir Intel'i kullan bana hak verecen.

İşlemcilerle alakalı diyosan alt bi tane AMD üzerinde FPU su var.

Ne diyim başka.

K.G.... Mad
Başa dön
Kullanıcı profilini gör E-Posta'yı gönder Kullanıcının web sitesini ziyaret et
DG



Kayıt: Mar 06, 2004
Mesajlar: 351
Nereden: Eskişehir

MesajTarih: Mon Jul 18, 2005 3:09 pm    Mesaj konusu: Alıntıyla Cevap Ver

BabaCONDA demiş ki:
dostum hele sen bir Intel'i kullan bana hak verecen.

İşlemcilerle alakalı diyosan alt bi tane AMD üzerinde FPU su var.

Ne diyim başka.

K.G.... Mad


Olayın Intel'le, AMD'yle, C'yle, C++'yla, CPU'yla, FPU'yla alakası yok. Hesaplama teorisi ile alakası var. Bırak Intel'in CPU'larını Emotion Engine'e koysan yine de R'nin bir alt kümesi temsil edilebilir. Sınırlı olan bir şeyle sınırsızın tamamını nasıl temsil edeceksin. Yani Intel'in derleyicisini kullanırsam gönül rahatlığıyla iki kesirli sayıyı == operatoru ile test edebileceğim öyle mi? Smile

YOK ÖYLE BİR ŞEY
.
Başa dön
Kullanıcı profilini gör Kullanıcının web sitesini ziyaret et
BabaCONDA



Kayıt: Jun 12, 2005
Mesajlar: 58
Nereden: İstanbul

MesajTarih: Mon Jul 18, 2005 3:35 pm    Mesaj konusu: Alıntıyla Cevap Ver

değerli dostum ben Intel pazarlayıcısı değilim. Sana söylediğim tek şey böyle, kesirli, kayan noktalı v.s. gibi sonucu normal matematikle bile izah edilemeyen bazı kavramları, Intel derleyicisi tespit edebiliyor. Sende ona göre akıllı asm kodu yazıyorsun.

Anlamıyormuş numarası mı yapğıyorsunuz dalgamı geçiyorsunuz belli değil.


K.G....
Başa dön
Kullanıcı profilini gör E-Posta'yı gönder Kullanıcının web sitesini ziyaret et
Mesajları göster:   
Yeni Başlık Gönder   Cevap Gönder    www.oyunyapimi.org Forum Ana Sayfası -> Programlama Dilleri ve Algoritmalar Tüm saatler GMT +2 Saat
Sayfa 1, 2  Sonraki
1. sayfa (Toplam 2 sayfa)

 
Forum Seçin:  
Bu forumda yeni konular açamazsınız
Bu forumdaki mesajlara cevap veremezsiniz
Bu forumdaki mesajlarınızı değiştiremezsiniz
Bu forumdaki mesajlarınızı silemezsiniz
Bu forumdaki anketlerde oy kullanamazsınız


Powered by phpBB 2.x.x © 200x phpBB Group
Türkçe Çeviri : Onur Turgay & Erdem Çorapçıoğlu
Türkçe Düzenleme: Alexis Canver
Version 2.x.x of PHP-Nuke Port by Tom Nitzschner © 200x www.toms-home.com




Web site powered by PHP-Nuke
Web site engine\'s code is Copyright © 2002 by PHP-Nuke. All Rights Reserved. PHP-Nuke is Free Software released under the GNU/GPL license.
Sayfa Üretimi: 0.177 Saniye