C# 如何截断双数据类型值变量
我有课C# 如何截断双数据类型值变量,c#,C#,我有课 public class Score { public double marks { get; set; } } 现在在我的代码中 List<Level1> Obj= new List<Level1>(); Score Object= new Score(); l1.marks=94.345454; Obj.Add(Object) List Obj=new List(); 分数对象=新分数(); l1.分数=94.345454; 对象添加(对象)
public class Score
{
public double marks { get; set; }
}
现在在我的代码中
List<Level1> Obj= new List<Level1>();
Score Object= new Score();
l1.marks=94.345454;
Obj.Add(Object)
List Obj=new List();
分数对象=新分数();
l1.分数=94.345454;
对象添加(对象)
//现在在将对象添加到列表时,我需要将值trunacte到
94.34并存储在列表obj中。
所以我需要得到的输出是94.34
我该怎么做呢。
提前感谢prince您可以在
标记
属性设置器中执行此操作:
value -= value % 0.01
这将从值中减去0.005454,因此留下正确的小数点数(在本例中为2)
比如:
public class Score {
private double m_marks;
public double marks {
get { return m_marks; }
set { m_marks = value - (value % 0.01); }
}
}
将该值保留为双精度,并且仅在输出时格式化
string output = doubleValue.ToString("F2");
。例如:
doubleNumber = -1898300.1987;
Console.WriteLine(doubleNumber.ToString("F1", CultureInfo.InvariantCulture));
// Displays -1898300.2
Console.WriteLine(doubleNumber.ToString("F3",
CultureInfo.CreateSpecificCulture("es-ES")));
// Displays -1898300,199
当区域性设置为西班牙语时,请注意最后一次输出中的小数点逗号。您可以使用Math.Round(数字、精度),如图所示,您将收到级别1的编译时错误和分数类型不匹配。这是double的扩展方法吗?+1我同意。在内部保持数字的完全精度,并在输出时截断,尽管这是四舍五入而不是截断。我认为这也是正确的行为,但OP要求截断。有关截断,请参见此答案: