所以我希望12.6666667显示为12.6而不是13或12.67 这就是我所做的
Math.Round((5 * (53 - 32)) / 9, 1)
答案 0 :(得分:3)
Math.Truncate (x * 10.0) / 10.0
是一种方法。
使用您的号码:
double x = 5.0 * (53.0 - 32.0) / 9.0;
double result = Math.Truncate (x * 10.0) / 10.0;
请注意,在所有数字的末尾使用“.0”,这可确保在组合时使用浮点数学,而不是整数数学。整数数学将在分割数字时删除任何余数,而浮点数将保留小数点右边的东西,这就是你想要的。
答案 1 :(得分:1)
如果您想要格式化(正如John在评论中建议的那样):
String.Format("{0:0.0}", 12.6666666); // Note: this shows up as 12.7
答案 2 :(得分:1)
d -= d % 0.1; //Where 0.1 is the desired least significant unit.
它应该以你想要的任何精度截断而不是舍入,并且它似乎也适用于负数,总是向零舍入。
答案 3 :(得分:0)
如果您希望12.6666667显示为12.6,则必须截断,而不是舍入;否则你得到12.7到小数点后一位。
我个人通过去((int)(12.6666667 * 10))/ 10来做到这一点。
答案 4 :(得分:0)