将小数点舍入为特殊位数

本文关键字:小数点 舍入 | 更新日期: 2023-09-27 18:37:04

我需要创建一个像这样舍入十进制数的函数:

四舍五入("$32.95", 0) 至 -> $33舍入("85.86%", 1) 至 -> 86.9%

其中第一个参数是字符串,第二个参数是所需的小数点数

我正在使用 Math.round,但它正在转换为 85.9

将小数点舍入为特殊位数

您可以使用

的算法(我不知道C#):

  • 获得 10 次方(有效位数) (=P10)
  • 将小数乘以 P10
  • 添加: 0.5
  • 将此总和的整数部分除以 (P10) - 答案将是您的四舍五入数

将字符串转换为 double 并将其传递给 Math.Round

,如下所示:
double num=32.86;
Math.Round(num);   //Output 33
Math.Round(num, 1) //Output 32.9