小编eln*_*h78的帖子

带双号的C#问题

我在C#中使用双数字有一个奇怪的问题.这里的NET是我的测试:

double my_value = 0.49;
Run Code Online (Sandbox Code Playgroud)

问题是显示的变量值是0.48999999999999999我不需要显示0.49使用Math.Round()函数; 我需要准确存储这个值.

谢谢.

.net c# double rounding

1
推荐指数
1
解决办法
308
查看次数

使用结构作为参数

我需要定义一个enum带小数值,但由于这是不可能的,我已经阅读了使用的解决方案struct,所以我有以下内容:

        public struct r_type
        {
            public const double c001_a1 = 0.1;
            public const double c001_a2 = 0.2;
            public const double c001_a4 = 0.4;
            public const double c001_a8 = 0.8;
        }
Run Code Online (Sandbox Code Playgroud)

我试图将其称为函数中的参数,如下所示:

public static void SetRValue(string product_id, r_type r)
Run Code Online (Sandbox Code Playgroud)

但是在我的代码中调用它时会出错:

SetRValue(product.id, r_type.c001_a1);
Run Code Online (Sandbox Code Playgroud)

错误是:

错误5参数2:无法从'double'转换为'myproject.class1.r_type'

编辑:我需要我的r参数只能接受给定范围的值,而不是任何double值.如果我能拥有一个enum可以接受我struct上面所述的十进制值的话,我会做同样的事情.

.net c#

-1
推荐指数
1
解决办法
108
查看次数

标签 统计

.net ×2

c# ×2

double ×1

rounding ×1