Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.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
c#十进制问题_C#_Decimal - Fatal编程技术网

c#十进制问题

c#十进制问题,c#,decimal,C#,Decimal,先编码 taxRateDecimal = 0.0765; if (taxRateDecimal.ToString().Split('.').Length == 2) { outPut = taxRateDecimal.ToString().Split('.')[1].Substring(0, 4); ReportParameters.Add("TaxRateAsDecimal", "." + outPut); } 正如您在子字符串中看到的,我必须硬编码我的长度4。 所需结果

先编码

taxRateDecimal = 0.0765;
if (taxRateDecimal.ToString().Split('.').Length == 2)
{
    outPut =  taxRateDecimal.ToString().Split('.')[1].Substring(0, 4);
    ReportParameters.Add("TaxRateAsDecimal", "." + outPut); 
}
正如您在子字符串中看到的,我必须硬编码我的长度4。 所需结果。0765作为字符串

以下是我经历过的一些场景

我有百分之七点六五。 我想把它转换成十进制,当我这样做的时候,我做7.65/100。 这给了我0.0765,但我只想要0.0765。 如果我取0.0765,在“.”上使用拆分,并使用长度等。。 实际上,数组[1]的长度为6,值为076500。 再说一次,我只想要.0765或者只想要0765,我可以加上点

还有其他我没有尝试过的想法吗?
这最终需要一个字符串,因为我将它作为prama传递到SSRS中。

string。Format
将很容易处理这个问题

double taxRateDecimal = 1.0765;
string formattedResult = string.Format("{0:.0000}", taxRateDecimal % 1);

Console.WriteLine(formattedResult);  // .0765

您应该能够使用格式创建字符串:

var taxRateDecimal = 0.0765D;
var reportParameter = taxRateDecimal.ToString(".0000", CultureInfo.InvariantCulture);
生成的
reportParameter
.0765

该格式的其他结果如下:

0D -> .0000 1D -> 1.0000 1.23456D -> 1.2346 0D->.0000 1D->1.0000 1.23456D->1.2346
必须使用
CultureInfo.InvariantCulture
以确保小数分隔符为点。否则,当前区域性(默认设置)可能会指定逗号作为小数分隔符。

您只是想将小数格式化为字符串吗?这并不完全是你想要的,但它应该是有帮助的。