我想在值之后提取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的值非常大;这就是为什么我想使用子串函数,其中我不会有任何与舍入相关的问题,因为它与数学计算或数学函数相反。
如何在不影响任何价值的情况下以有效的方式实现这一目标?