将Excel%转换为C#
在Excel中,如果第1行单元格A、B、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。这将以小数形式给出您的百分比 然后我们可以创建一个方法来实现您的
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());