【发布时间】:2016-06-19 00:32:57
【问题描述】:
当我试图运行这个时,我的 const 正在四舍五入 从 double 转换为 int。有没有办法避免 发生舍入?
const double ACTIVTY_LEVEL1 = 1.2;
const double ACTIVTY_LEVEL2 = 1.375;
const double ACTIVTY_LEVEL3 = 1.55;
const double ACTIVTY_LEVEL4 = 1.725;
const double ACTIVTY_LEVEL5 = 1.9;
int activityLevel = lstActivityLevel.SelectedIndex;
switch (activityLevel)
{
case 0:
activityLevel = Convert.ToInt32(ACTIVTY_LEVEL1);
break;
case 1:
activityLevel = Convert.ToInt32(ACTIVTY_LEVEL2);
break;
case 2:
activityLevel = Convert.ToInt32(ACTIVTY_LEVEL3);
break;
case 3:
activityLevel = Convert.ToInt32(ACTIVTY_LEVEL4);
break;
case 4:
activityLevel = Convert.ToInt32(ACTIVTY_LEVEL5);
break;
}
【问题讨论】:
-
在转换为 int 时如何不舍入双精度数?
-
显然你不能在整数变量中使用浮点数。如果要保留浮动部分,为什么要将其转换为int?!
-
您甚至期望在这里发生什么?它是一个整数。令人惊讶的是,它没有小数部分 o.0
-
惊讶..!,这是一个
integer,这是行为的一部分,你为什么要这样转换? -
看看这个Click here
标签: c# int switch-statement double