圆形.99表示十进制值

use*_*183 2 c# decimal rounding

我想将价格(加倍)四舍五入到最接近的xx.99

例如:

10.3 ==> 10.99
10 ==> 10.99
10.97 ==> 10.99
10.50 ==> 10.99
10.99 ==> 10.99
10.01 ==> 10.99

我做了Math.Round,Math.Truncate,Math.Ceiling但它不能正常工作的情况下所有.我可以转换string,拆分和替换,但我认为这不是一个好方法.

我能怎么做?

Mon*_*Zhu 6

把小数点去掉并加上0.99美分;)

double value = 10.45d;
double newprice = (int)value + 0.99;
Run Code Online (Sandbox Code Playgroud)

  • 我只想添加一个非常轻微和迂腐的观点.如果价格在内部超过两位小数,那么如果价格是例如9.991则这将无法正常工作.它将给出9.99,但根据规则它应该给10.99.告诉你它是迂腐的. (3认同)