2015-04-10 9 views
6

Ürün verilerini fiyatlara kaydetmek için şu anda Azure DocumentDB kullanıyorum. Neredeyse her şey gayet iyi çalışıyor ama şimdi DocumentDB'den okurken benim ondalık (System.Decimal) kesiliyor sorunu var. Örneğin
bu fiyatın: aynı olmadığı içinAzure DocumentDB Decimal Truncation

 
Input Price: 25.1132356547854257645454 

biz fiyat değişiklikleri bulmak için bir senkronizasyon mekanizması kullanıyor gibi bu fiyat değişikliği içine sonuçlanacaktır

 
DocumentDB Price: 25.113235654785 

içine kesilecek artık fiyat.
DocumentDB'nin davranışını nasıl değiştirebileceğimi bilmiyorum. En kötü ihtimalle bu sorunu önlemek için girdi fiyatlarını kısmak zorunda kalacağım, ancak tercih etmemeyi tercih ederim.

Yardımlarınız için teşekkürler.

cevap

6

Azure DocumentDB, JSON standardı başına IEEE floating point numbers kullanır. Bu, verilerin farklı programlama platformları ve uygulamaları arasında taşınabilir olması için gereklidir. Ne yazık ki, bu büyük tamsayıların ya da gördüğünüz gibi daha yüksek kesinlikli ondalık sayıların kesilmesine yol açabilir.

Bu konu üzerinde çalışmak için, lütfen yalnızca eşitlik için kullanıyorsanız veya kesilmiş gösterimi saklamak istiyorsanız, sayıyı iki parçalı bir sayıya ayırmayı düşünün.

Bu yardımcı olur umarım.

+1

Cevabınız için teşekkürler. En azından buna neyin sebep olduğunu biliyorum. Verileri girerken kesilmeye çalışacağım sanırım. Bu büyük bir anlaşma değil. – lgrabarevic