C# 小数点后仅需2位数字
我希望我的函数只返回小数点后两位的值。我尝试了以下代码:C# 小数点后仅需2位数字,c#,format,C#,Format,我希望我的函数只返回小数点后两位的值。我尝试了以下代码: private static double CalculateSlabTax(int nSlabStartTaxable, int nSlabEndTaxable, float fSlabRate) { double dblSlabResult = 0; try
private static double CalculateSlabTax(int nSlabStartTaxable,
int nSlabEndTaxable,
float fSlabRate)
{
double dblSlabResult = 0;
try
{
dblSlabResult = (nSlabStartTaxable - nSlabEndTaxable) * fSlabRate;
dblSlabResult = Math.Round(dblSlabResult , 2);
return dblSlabResult;
}
catch (Exception)
{
return -1;
}
}
预期输出为:dblSlabResult=#######
-两位数字(例如1002.05
)
将输出获取为:例如,dblSlabResult=1002.1
字符是可选的数字占位符。使用0
在转换为字符串时强制使用数字:
string.Format("{0:#.##}", 1002.1) == "1002.1"
string.Format("{0:0.00}", 1002.1) == "1002.10"
当四舍五入float
或double
时,不要期望特定的位数计数。它们只是数字,与字符串格式无关。字符是可选的数字占位符。使用0
在转换为字符串时强制使用数字:
string.Format("{0:#.##}", 1002.1) == "1002.1"
string.Format("{0:0.00}", 1002.1) == "1002.10"
当四舍五入
float
或double
时,不要期望特定的位数计数。它们只是数字,与字符串格式无关。您使用的是什么输入?Math.Round应该工作正常,这表明上面的行返回的是一个只有1个有效数字的double。您使用的是什么输入?Math.Round应该工作正常,这表明上面的行返回的是一个只有1个有效数字的double。表示使用格式。在您的情况下,小数点后正好有两位数字表示“F2”
格式字符串
double source = 1234.56789;
// 1234.57
var result = source.ToString("F2");
要表示,请使用格式。在您的情况下,小数点后正好有两位数字表示“F2”
格式字符串
double source = 1234.56789;
// 1234.57
var result = source.ToString("F2");
很简单。试试这个
public double UptoTwoDecimalPoints(double num)
{
var totalCost = Convert.ToDouble(String.Format("{0:0.00}", num));
return totalCost;
}
很简单。试试这个
public double UptoTwoDecimalPoints(double num)
{
var totalCost = Convert.ToDouble(String.Format("{0:0.00}", num));
return totalCost;
}
您得到的号码是否可能类似于
1002.101
?然后,四舍五入到两位数,1002.1
是预期结果。您的计算方法正确。显示输入。还有,try/catch是没有意义的。@harold输入在方法参数中,而try-catch不是pointless@DhirajSardal但具体是什么呢。毕竟你只得到了2个数字,1也是“仅2”的一种形式。try/catch只捕获了指定给Math.Round
的错误数字,这是永远不会发生的。我认为@Harold所说的“显示输入”的意思是显示您实际传入的一些示例值。您得到的数字可能类似于1002.101
?然后,四舍五入到两位数,1002.1
是预期结果。您的计算方法正确。显示输入。还有,try/catch是没有意义的。@harold输入在方法参数中,而try-catch不是pointless@DhirajSardal但具体是什么呢。毕竟你只得到了2个数字,1也是“仅2”的一种形式。try/catch只捕获了指定给Math.Round
的错误位数,这是永远不会发生的。我认为@Harold所说的“显示输入”的意思是显示您实际传入的一些示例值。