舍入到最接近9的结尾数字

时间:2018-06-11 14:02:53

标签: c# rounding

我有一个计算公交车票价格的网站。目前价格四舍五入到最接近的10,但现在我希望计算出的价格四舍五入到9的最接近的数字。

编辑:在评论中添加了回答问题的新示例。

示例:

  • 770至774应四舍五入至769
  • 775至784应四舍五入至779
  • 785至790应四舍五入至789

有没有人有关于如何使用c#解决问题的提示?

4 个答案:

答案 0 :(得分:6)

舍入到最接近的10然后减去1。

在c#中,您可以这样做:

double val = 444.3;

double step1 = val/10;                 // 44.43
double step2 = Math.Round(step1, MidpointRounding.AwayFromZero); // 44
int step3 = (int)step2 * 10;           // 440
int rndVal = step3 - 1;                // rndVal == 439

或最短版本:

double val = 444.3;
int rndVal = (int)(Math.Round(val/10, MidpointRounding.AwayFromZero)*10)-1;

答案 1 :(得分:0)

加1,舍入到最接近的10,然后减1。

答案 2 :(得分:0)

int number=65;
       // Console.WriteLine(number);
        int lastNumber=number%10;
        //Console.WriteLine(lastNumber);
        if(lastNumber<5)
        {
            number-=lastNumber;
            number--;
            Console.WriteLine(number);
        }
        else
        {
            var addNumber=10-lastNumber;
            number+=addNumber;
            number--;
            Console.WriteLine(number);
        }

答案 3 :(得分:0)

以下功能可以完成这项工作。

public static int RoundTo9(double value) 
{
    return (int)(value/10.0  + 0.5) * 10 - 1;
}