2011-07-25 9 views
0

今私はCFMとMSSQLを使用しているプロジェクトに取り組んでいます。
フィールドに番号のデータがあります。私はDATATYPEをfloatとして設定しました。

小数点以下のゼロを格納する

データの例:

3.1,3.2,3.3 ........、3.10、3.11

私の問題:

  1. 3.10が存在しないようです。代わりに3.1となります。これは3.1の数字が2つあることを意味します。

    私はデータをソートするとき、それはのように表示
  2. :3.2、3.11、3.1、
    3.1、3.3 ..など

私が行ったのか分かりません違う。
助けてください。

+2

浮動小数点型3.1 == 3.10 == 3.100など – Random

+1

何も「間違っていました」3.10 = 3.1、格納されているすべての数値と同じように、末尾の0を外しています。 – Nicholas

+3

dygta:何も間違っていませんでした:あなたはストレージとのプレゼンテーションを混乱させています。 –

答えて

0

精度を保存する場合は、その情報を格納する新しい列を作成するか、文字列として格納します。これを数値として必要とする前に浮動小数点数に解析できます。文字列もきれいに並べ替えられます。

+0

私は間違ったコードをしたかどうかわかりません:(私はこのプログラミング事柄btwで新しいです。 .. – dygta

+0

@dygtaそれでは、実際の答えは間違っていませんでした。実際には1は実際には1.0と全く同じです。 – bdares

4

あなたが達成しようとしている正気でない忌み嫌いのものに対して、異なる値を表すには3.1と3.10が必要な場合は、varcharのようなテキストデータ型を使用する必要があります。

数値型を使用している限り、SQLと他のすべてのプログラミングプラットフォームは、3.1と3.10が同じ値である数学の普遍的な法則を強制する可能性があります。

+0

私は実際にリストを作成しています。 (No)をvarcharとして変更しました。コードでは、これをORDER BY No.に設定しました。
ただし、出力はthis
4.1,4.10,4.11,4.12,4.13です。 、4.2,4.3,4.4など
dygta

+0

小数点の右と左の部分が2つの異なる値を表す場合は、それらを一緒に挟む代わりに2つの整数フィールドに入れます。 – JohnFx

関連する問題