2011-07-25 137 views
0

现在我正在使用CFM和MSSQL进行项目工作。
我有一个字段中的编号数据。我已将DATATYPE设置为浮动。数据的

小数点后保存零位

例如:

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

我的问题:

  1. 它似乎3.10不存在。相反,它来自3.1,这意味着我有两个3.1号码。

  2. 当我对数据进行排序,它显示为:
    3.1,3.1,3.11,3.2,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

我实际上正在制作一个列表。和Item。现在我已将数据类型(No)更改为varchar,并在代码中将其设置为ORDER BY No.
但是,输出为
4.1,4.10,4.11,4.12,4.13 ,4.2,4.3,4.4等
dygta

+0

如果小数点右边和左边的部分表示两个不同的值,则将其放在两个整数字段中,而不是将它们干扰在一起,这应该可以解决您的问题。 – JohnFx

相关问题