Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Excel%转换为C#_C#_Excel_Excel Formula - Fatal编程技术网

将Excel%转换为C#

将Excel%转换为C#,c#,excel,excel-formula,C#,Excel,Excel Formula,在Excel中,如果第1行单元格A、B、C中分别有以下值 3.332125,100%,0%对于单元格$D$1我有一个公式:=($A$1*$B$1*($C$1+100%)+0.16) 这给出了一个值3.492125,这就是我想要的。我需要把它转换成C#公式,我的问题是解释100% 任何人都可以提供C#中的等效值。百分比必须首先从字符串转换而来。发件人: 本质上,num是字符串值的十进制值,末尾的字符“%”和/或“”(空格)除以100。这将以小数形式给出您的百分比 然后我们可以创建一个方法来实现您的

在Excel中,如果第1行单元格A、B、C中分别有以下值

3.332125,100%,0%
对于单元格
$D$1
我有一个公式:
=($A$1*$B$1*($C$1+100%)+0.16)

这给出了一个值
3.492125
,这就是我想要的。我需要把它转换成C#公式,我的问题是解释100%


任何人都可以提供C#

中的等效值。百分比必须首先从字符串转换而来。发件人:

本质上,num是字符串值的十进制值,末尾的字符“%”和/或“”(空格)除以100。这将以小数形式给出您的百分比

然后我们可以创建一个方法来实现您的公式:

public decimal YourFormula(decimal A, decimal B, decimal C)
{
    return(A*B*(C+1)+0.16);
}
这里的1等于100%,如excel中所示

double a = 3.332125;
double b = 100/100;
double c = 0 / 100;
Console.WriteLine((a * b * (c + 100 / 100) + 0.16).ToString());
结果:

3.492125


将%替换为/100

如果我在Excel公式中执行以下操作,则不确定该操作是否有效
(0+100%)
将给出
1
如果执行
(1+100%)
将给出'2
。如果我在C#中这样做,只需删除%即可
(1+100m)/100m`将给出
1.01
,这个问题表示您对Excel和C#(NET和/或大多数编程语言)中的数字的看法不太清楚。一件事是数字(用于执行计算),另一件事是它的显示方式。例如,如果在Excel单元格中写入100%,可能会看到100%或1欧元或1欧元等。。(取决于给定单元格的格式)。C#的行为相当,记住它不能像Excel那样直观地识别“100%”。因此,只要记住100%等于1(50%,0.5等等),你就不会有任何问题。
double a = 3.332125;
double b = 100/100;
double c = 0 / 100;
Console.WriteLine((a * b * (c + 100 / 100) + 0.16).ToString());