我在C#中使用双数字有一个奇怪的问题.这里的NET是我的测试:
double my_value = 0.49;
Run Code Online (Sandbox Code Playgroud)
问题是显示的变量值是0.48999999999999999我不需要显示0.49使用Math.Round()函数; 我需要准确存储这个值.
谢谢.
我需要定义一个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上面所述的十进制值的话,我会做同样的事情.