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
以确保小数分隔符为点。否则,当前区域性(默认设置)可能会指定逗号作为小数分隔符。您只是想将小数格式化为字符串吗?这并不完全是你想要的,但它应该是有帮助的。