NormalizeÇift paradoks - sayfa 2

 
transcendreamer :
Model boşluğu, normalizasyondan sonra bile kuyrukların kalmasıdır!
normalleşmeden sonra yazı yok... İnsanları yanlış yönlendirmeyin.
 
VOLDEMAR :
normalleşmeden sonra yazı yok... İnsanları yanlış yönlendirmeyin.

girmiyorum .... ama var

durum şu: Çift sayıyı normalleştiriyorum, terminalin global değişkenine yazıyorum, sonra okuyorum, tekrar normalleştiriyorum ve kuyrukları alıyorum!

sonunda - Bu şakaları yakalayacak gücüm yok - sadece aldım ve DoubleToStr(current,2) kullanarak zorla kestim

 
transcendreamer :

girmiyorum .... ama var

durum şu: Çift sayıyı normalleştiriyorum, terminalin global değişkenine yazıyorum, sonra okuyorum, tekrar normalleştiriyorum ve kuyrukları alıyorum!

sonunda - Bu şakaları yakalayacak gücüm yok - sadece aldım ve DoubleToStr(current,2) kullanarak zorla kestim

Bir çift değişkeni, örneğin 5 karaktere normalleştirdiyseniz, değişken 5 karakter saklar, yeniden yazdırma ve diğer durumlarda, değişkeni başka bir veri türüne aktarırsınız, bunun sonucunda bir kuyruk görünebilir .

ama normalleşme sonrası ikilide kuyruk yok...

Söve almamak için uygulama yerlerinde normalleştirme yapmanız gerekir, hesaplamalar sırasında yapamazsınız...

 
VOLDEMAR :

Bir çift değişkeni, örneğin 5 karaktere normalleştirdiyseniz, değişken 5 karakter saklar, yeniden yazdırma ve diğer durumlarda, değişkeni başka bir veri türüne aktarırsınız, bunun sonucunda bir kuyruk görünebilir .

ama normalleşme sonrası ikilide kuyruk yok...

Söve almamak için uygulama yerlerinde normalleştirme yapmanız gerekir, hesaplamalar sırasında yapamazsınız...

yani, örneğin bir dönüşüm yaparsam
(string)current

peki bu dönüşüm sürecinde kuyruk verebilir mi?

bilmiyordum

teşekkür etmek!

 
transcendreamer :
yani, örneğin bir dönüşüm yaparsam
(string)current

peki bu dönüşüm sürecinde kuyruk verebilir mi?

bilmiyordum

teşekkür etmek!

Evet, belki DoubleToString (, 5) doğrudur
 
stringo :

NormalizeDouble tam olarak böyle çalışır (ve ilk MQL'den beri her zaman böyle çalışır)

Sayı 10 ile basamakların kuvvetiyle çarpılır, tamsayı biçimine dönüştürülür ( kesirli kısım atılır) ve sonra 10 ile basamakların kuvvetine bölünür.

Sorun ne? Şablon molası mı?

Kesirli kısmı atıyor mu? Yuvarlama yapılır.

NormalizeÇift(1.25,1) = 1.3

 
Integer :

Kesirli kısmı atıyor mu? Yuvarlama yapılır.

NormalizeÇift(1.25,1) = 1.3

Evet. Yuvarlamadan bahsetmeyi unuttum. Bir tamsayı elde edildiğinde yuvarlama uygulanır.
 
transcendreamer :
yani, örneğin bir dönüşüm yaparsam
(string)current

peki bu dönüşüm sürecinde kuyruk verebilir mi?

bilmiyordum

teşekkür etmek!

Kesinlikle bu şekilde değil. İkili sistem != Ondalık sistem. İkili ondalık basamak değerleri: 0,5 / 0,25 / 0,125 / 0,0625 / 0,03125 vb. Bu tuğlalardan tüm ondalık basamakları toplamak imkansızdır. Örneğin, 0,3 ondalık sayısını doğru bir şekilde temsil etmek imkansızdır (yalnızca yaklaşık bir değer ekleyebilirsiniz), ikili sistemde ya biraz daha az ya da biraz daha fazla olacaktır. Ve böylece bu kuyruk ortaya çıkıyor.

Sadece 1/2 ^ herhangi bir kuvvete kalansız bölünebilen sayılar tam olarak temsil edilir.

Başka bir deyişle, ondalık basamakları ikili biçimde temsil etmeye çalıştığımızda sayıları çarpıtırız.

 
Böyle bir benzetme:
İşlemin sonucunu tam olarak yazmamak için 1/3'ün yuvarlanması gerekeceği gerçeğine alışkınız. Ancak üçlü sistemde == 0.1 işleminin tam bir temsili vardır. Üçlüye özgü olsaydık ve PC ondalık sayı ile çalıştıysa, 0,1 sayısı üçlü sisteme geri dönüştürüldüğünde rakamlardaki çöplere şaşırırdık.
 
pavlick_ :
Böyle bir benzetme:
İşlemin sonucunu tam olarak yazmamak için 1/3'ün yuvarlanması gerekeceği gerçeğine alışkınız. Ancak üçlü sistemde == 0.1 işleminin tam bir temsili vardır. Üçlüye özgü olsaydık ve PC ondalık sayı ile çalıştıysa, 0,1 sayısı üçlü sisteme geri dönüştürüldüğünde rakamlardaki çöplere şaşırırdık.

hepsi bu kadar

ancak bir nedenden dolayı, bir kuruş hesaplayıcı bile, hafızadan bir sayı okurken, orada yazılanları tam olarak verebilir.

1.23 kesirini yazdı ve tam olarak 1.23'ü kuyruksuz olarak geri aldı

ve işte bazı şakalar

teorik olarak, kullanıcı bir sayıyı ikili formatta temsil etmek gibi bir rutinden korunmalıdır.

<inek modu kapalı>

Neden: