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

Lik*_*nes 2 c# rounding

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

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

例子:

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

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

Sir*_*elf 8

舍入到最接近的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
Run Code Online (Sandbox Code Playgroud)

或最短的版本:

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