c# - 验证小数是否具有三个位置

标签 c# decimal

我在 C# MVC 的 Controller 中收到了一个十进制字段。我需要知道它的十进制值是否不超过三个位置。

因此 0.00 和 0.01 都被接受,但 0.001 将被拒绝。

这样做:

if (discount > 1 || discount< (decimal) 0.01)
{
    // Log error
}

仅部分有效,因为 0.00 被拒绝。我怎么能那样做?

最佳答案

只取小数除以0.01 的余数。如果它是零,那么小数点后没有值,如果有,那么有:

bool hasSomethingAfterSecondDecimalDigit = discount % 0.01m != 0m;

请注意,这对于负数也将按预期工作。

关于c# - 验证小数是否具有三个位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20506022/

相关文章:

c - 将 float 格式化为十进制数的算法

python - Cassandra 十进制精度问题

javascript - 获取总和而不将其四舍五入到小数点后两位

c# - .Net 中的多语言 Winform - 意见和建议

java - 无法从 Java Web 服务获取数据

java - 在Java中将十六进制转换为十进制

c - fscanf 如何将 20.20.2012 之类的日期导入一个变量?

c# - 如何获取类库的当前目录?

c# - Bitmap.UriSource 未设置

c# - .NET 程序集依赖项