C#浮点值四舍五入到两位小数

时间:2019-11-26 09:19:29

标签: c# asp.net asp.net-mvc c#-4.0 double

我在C#中有一个像这样的值:

14.995

我尝试将值存储在以下变量中:

double Number;
float Number;

两个值似乎都将这个数字四舍五入到15 ..但是,不是15 ...我希望将数字四舍五入到正好14.99:/

Number= Math.Round(amount * (1 - calcPerc),2,MidpointRounding.AwayFromZero);\

输出始终为15 ...是否有某种方法可以将其舍入为14.99而不是15?

有人可以帮我吗?

3 个答案:

答案 0 :(得分:0)

假设您要截断小数点后第二位之后的所有内容

decimal calcPerc = 14.995m;
decimal result = Math.Truncate(calcPerc * 100) / 100m; // 14.99

https://dotnetfiddle.net/eMtqKb

答案 1 :(得分:0)

尝试一下

十进制数= 14.995;

Math.Floor(Number * 100)/ 100;

答案 2 :(得分:-1)

请尝试

double n = 14.995;
double newNum  = Math.Floor(n * Math.Pow(10, 2)) / Math.Pow(10, 2);

输出为14.99