我首先使用实体框架代码。当试图将负十进制值保存到Server数据库时,会发生此错误。下面列出了我要保存的模型。
public class Material
{
public Material()
{
Categories = new List<Category>();
}
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id { get; set; }
[Required]
我很好奇为什么转换为字符串会丢失十进制,但是当我直接传入对象时,它会维护它的值。
//set number of decimals at 1
//This code produces whole numbers even though I set number to 1 decimal point.
NumberFormat number = NumberFormat.getNumberInstance();
number.setMaximumFractionDigits(1);
String averageScoreString = number.format(averageScore)
我在使用LINQ to dataset查询时遇到了一些问题。我有一个问题,数据作为双精度值返回到数据集,并且可能为null。当我将数据放入我的LINQ查询时,它会截断到小数点后一位。我想知道有没有人能告诉我设置精度的最好方法,使它保留两位小数?我试过用“双倍?”但是当我这样做的时候,我得到了一个无效的强制转换异常。下面是我的L2D查询示例:
Dim query = _
From bb In bbdata.AsEnumerable(), _
ab In abdata.AsEnumerable() _
Where (bb.Field(Of String)("bbID
这个很简单。为什么下面的代码会导致下面的错误?
declare @dTest decimal(10, 9)
set @dTest = 50
错误:
Msg 8115, Level 16, State 8, Line 3
Arithmetic overflow error converting int to data type numeric.
根据 on decimal(p, s),p (在我的例子中是10 )是“可以存储在小数点左边和右边的十进制数字的最大总数”,而s (在我的例子中是9)是“可以存储在小数点右侧的最大十进制数”。
我的数字,50,只有2位数字总计(小于最大值10),0位数在
我目前正在输出值到6位小数点,并希望舍入第6位,而不考虑整数值。
到目前为止,我一直在使用CEILING()函数,该函数在向上舍入时对值1-9非常有效;但是,在小数点后7位为0(例如: 2705.1520270)的情况下,该函数不会向上舍入到2705.152028。
select CEILING(price*1000000)/1000000 as PriceRound
from tc_alcf a (nolock)