2011-07-21 21 views

cevap

44

Doğrudan/eşdeğer bir eşdeğer yoktur, çünkü bildiğim kadarıyla açık/kesin olarak belirtmenize izin veren yerleşik .NET türü yoktur. NUMERIC gibi sabit nokta türü yok.

decimal ve doubledecimaldecimal floating point uygulamakla, .NET ortak kayan nokta türleridir (T-SQL FLOAT ve GERÇEK gibi) binary floating point davranışı uygulamak ve double (T-SQL NUMERIC gibi). (Daha küçük bir ikili kayan nokta türü olan yanı float var.)

Sen temsil etmek gidiyoruz hangi değerleri temelinde decimal ve double arasında bir seçim yapmalı - Ben genellikle "insan yapımı" yapay değerlerin düşünüyorum (özellikle para) decimal için uygun olarak ve double için uygun olan sürekli, doğal değerler (fiziksel boyutlar gibi).

+1

Bu ayrımlar SQL Server türleri için de geçerli olmalıdır - 'sayısal'/'ondalık' ondalık kayan nokta türleri, 'float' ve 'gerçek' ikili kayan nokta vardır gibi bir şeyle eşleş. –

+0

@Damien: Teşekkürler, düzenleyecektir. –

9

Veri türü eşlemelerine bir kılavuz olarak this site'a bakmayı deneyin. Bildiğim kadarıyla hassasiyet ve uzunluğu gibi, iki sorulara bağlı olarak iki cevaplar vardır Kendinizi format specifiers

0

kullanarak bu kontrol: Eğer duyarlık ve ölçeği belirlemenizi sağlar şey nedir

1). Hiçbir şey değil. Bu soru gibi ama her ihtimale karşı görünüyor: Bir ondalık kayan noktalı sayı tam belirlemenizi sağlar şey nedir

2). Bu aslında Ondalık tiptir - ancak nokta içseldir ve giriş numarasına göre 2^32 konumlarından birine ayarlanmıştır. Niçin emin değil, ama sadece 28 değer çalışır veya 2^5 - 4 ..

.Net, ondalık bir float gibi görünmesine izin verse de, kapakların altında çok farklıdır ve SQLServer'ın Ondalığı ile eşleşir. . 2 değerin ayrı bir gücü toplamı olmayan herhangi bir şey, normal ikili kayan noktayı kullanan bir tahmindir. Bu, 0,1 rakamı gibi bir şeyin bile çoktan kesilmiş olduğu anlamına gelir. Ancak Ondalık tipi ile değil.