我试图用double来表示在数据库中的双值类型的位,有时必须接受两个值,有时只接受一个(int)。分裂两个双,C#
等等领域是数据库中的浮动,在我的C#代码,它是一个双(因为通过EF映射它使双出于某种原因...)
所以基本上我想要什么要做..让我们说2.5是价值。我想把它分成2和5.有没有什么隐含的方法可以解决这个问题?
我试图用double来表示在数据库中的双值类型的位,有时必须接受两个值,有时只接受一个(int)。分裂两个双,C#
等等领域是数据库中的浮动,在我的C#代码,它是一个双(因为通过EF映射它使双出于某种原因...)
所以基本上我想要什么要做..让我们说2.5是价值。我想把它分成2和5.有没有什么隐含的方法可以解决这个问题?
像这样:
int intPart = (int)value;
double fractionalPart = value - intPart;
如果你想fractionalPart
是一个int
,您可以10 ñ,其中n
是你想要的数字投给int
的数量,乘以。
但是,要小心精度损失。
然而,这是非常糟糕的设计;你应该可以做两个领域。
SQL Server的float
类型是一个8字节的浮点值,相当于C#的double
。
你应该能够隐式类型转换双为int以获得第一部分和减去从数然后乘以十要第二部分
为什么要尝试那个,而不是仅仅使用两列? – Svish 2010-05-25 19:08:25
这有点难以解释...但基本上所给出的数据可能会或可能不会分布在两列之间,并且在数据库级别无法确定它。每次使用数据时都是动态的。 – Ciel 2010-05-28 20:10:25