如何在不舍入的情况下提取N个小数点?

时间:2017-09-14 14:36:14

标签: c#

我想在值之后提取N个小数点而不进行舍入。

以下是示例:

string val = null;
int numberOfDigitsAfterDecimalPoint = 2;
double val1 = 56423747.61;
double val2 = 56423996.57;
val = ((56423747.61 / 56423996.57) * 100).ToString(); //99.9995587692912  
val = String.Format("{0:n" + numberOfDigitsAfterDecimalPoint.ToString() + "}", (100 * Convert.ToDecimal(val)) / 100); //100.00

但是这里的问题是它正在四舍五入,我得到了100.00,我不想要因为我想要小数点的确切值,即99.99,没有任何一种向上。

我搜索并得出结论(我的想法),处理这个问题的最好方法是使用子字符串方法提取小数点后的位数,但我仍然不确定我是以错误还是正确的方式思考。

numberOfDigitsAfterDecimalPoint = 2的预期输出

99.99

更新

我没有得到小数点后的固定值,因为它依赖于numberOfDigitsAfterDecimalPoint变量。除此之外,我可以根据其计算val的值非常大;这就是为什么我想使用子串函数,其中我不会有任何与舍入相关的问题,因为它与数学计算或数学函数相反。

如何在不影响任何价值的情况下以有效的方式实现这一目标?

0 个答案:

没有答案