代码优先。
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的百分比。 我想把它转换成十进制,这样做我做7.65 / 100。 这给了我0.0765,但我想要.0765。 如果我拿0.0765并在“。”上使用拆分。并使用长度等.. 我实际上得到数组[1]的长度为6,值为076500。 我只想要.0765或者只是0765,我可以添加点。
我还没试过其他任何想法? 这最终需要成为一个字符串,因为我将它作为一个prama传入SSRS。
答案 0 :(得分:2)
您应该能够使用格式来创建字符串:
var taxRateDecimal = 0.0765D;
var reportParameter = taxRateDecimal.ToString(".0000", CultureInfo.InvariantCulture);
结果reportParameter
为.0765
。
该格式的其他结果是:
0D -> .0000 1D -> 1.0000 1.23456D -> 1.2346
您必须使用CultureInfo.InvariantCulture
来确保小数点分隔符是一个点。否则,当前区域性(默认值)可能会将逗号指定为小数点分隔符。
答案 1 :(得分:1)
string.Format
可以轻松处理此问题。
double taxRateDecimal = 1.0765;
string formattedResult = string.Format("{0:.0000}", taxRateDecimal % 1);
Console.WriteLine(formattedResult); // .0765