ondalık çarpma problemi

Başlatan Maxim, 17 Ocak 2011, 09:26:31

Maxim

bir sayı var diyelim 12.06 float yani
bunu 10 ile çarpıyorum 12.06 * 10 = 120.6

sonra yaptığım şey DIG komutu ile haneleri ayırıp ekrana veriyorum
yani 1 - 2 - ve 0 ekranda gözükecek .

fakat DIG komutu float sayılarda çalışmıyor, o yüzden bu 10 ile çarpma sonucunu byte içerisinde tutuyorum

sorun burada başlıyor
sayı 12.03 olsa tamam ama 12.06 olunca çarpma sonucu kendini otomatik 121 e tamamlıyor
DIG komutu sonrasıda sayılarım 1 - 2 ve 1 oluyor

ne yapmalıyım sizce ?

JKramer

Son bulduğunuz sayıdan 0.5 çıkartıp DIG komutunu uygulayabilirsiniz belki. (Proton hakkında hiçbir bilgim yok, sadece öneri :) )

fatihkuzucu

Exp.Kits http://tinyurl.com/3qhs8pm   Küçük adamların, küçük fikirleri... Büyük adamların, büyük hayalleri...

fahri-

C kullansaydınız , floor(deger) komutunu kullanın diyecektim :)

Maxim

Alıntı yapılan: fatihkuzucu - 17 Ocak 2011, 10:16:07
100 ile carp .

cevaplayan arkadaşlara teşekkürler
çözümü buldum :)

100 ile çarpmakta çözüm evet

12.06 * 100 = 1206
soldan ilk üç sayıyı al = 1 - 2 ve sıfır .

ama protonda, çarpma öncesi
_FP_FLAGS = 0

12.06 * 10

ve sonrası
_FP_FLAGS = 64

yazıp işimize devam edersek,
çarpma işlemi sırasında protonun otomatik tamamlama rutinini kapatmış ve tekrar açmış oluyoruz.
(daha doğrusu oluyormuşuz)

önceden : 12.06 * 10 = 121
şimdi : 12.06 * 10 =120


Maxim

ayrıca bunun için yeni versiyonda kod eklenmiş

Float_Rounding = Off
3.7
çıkan sonuç 3


Float_Rounding = On
3.7
çıkan sonuç 4

Murat Mert

Teşekkürler Maxim, Çok işimize yarayacak bir kod çalışması oldu.
mert07

eseneren

kusuratlı ıfadelerın modullerı alınmıyor mu?
modulunu alsan 1 e gore ?

a=12,06;
a=a*10;
a=a%1;
Seçim yapmak için durum hakkında bilgi sahibi olmak zorunda değilsin, sonucuna hazır olmak için durum hakkında kaygılanırsın.  http://bit.ly/gixfTk