【发布时间】:2022-01-03 16:31:20
【问题描述】:
我的 DataGridView 有一些十进制输入;比如说4,3。
我想比较它是否在3,5和4,4之间。
我应该如何在我的代码中写入数字3,5 和4,4?
在我目前的尝试中,我遇到了一些错误,例如
;预计
} 预期
操作员 ||无法申请
我尝试过 Cultureinfo,但我不知道具体如何使用它。
到目前为止,这是我的代码:
var updateLabStar = db.PatientLab.Where(x => x.BloodUrinId == item.BloodUrinId).FirstOrDefault();
if (Convert.ToDecimal(Result) < 3,5 || Convert.ToDecimal(Result) > 4,4)
{
updateLabStar.Interval = updateLabStar.Result + " *";
db.SaveChanges();
}
【问题讨论】:
-
您不能在代码中使用逗号作为文字值的小数分隔符,您必须使用句点。
CultureInfo只影响小数的显示方式,而不影响它的存储或比较方式。如果您想在代码中使用逗号作为文字,您需要将它们定义为字符串,然后使用适当的文化将它们解析为小数。 -
@DM,感谢您的回复。我已经尝试过很多方法,比如 string.Format(..., "{0:N}", parsed) 并且我确信我做错了。你能告诉我你是什么意思吗?提前谢谢你
-
@DM,我不同意“
CultureInfo只影响小数点的显示方式”,因为它实现了可用于解析数据的IFromatProvider接口。 -
@HelenTekie 当然,看看this fiddle。
-
@Qwertyluk 有效点,但解析后的表示与任何其他文化相同。这就是我的意思。一旦有了
decimal,就没有文化是没有意义的,因为C#只以一种方式处理decimal。