【发布时间】:2016-11-20 20:52:00
【问题描述】:
我有一个任务,我应该创建一个将十进制数 (double) 转换为 int 的方法,但小数也应保留。
例子。 2,33 --放入方法并生成--> 233
这是我到目前为止所做的,它只生成一个四舍五入的数字
static int MakeDoubleInt(double x)
{
int y = (int)x;
return y;
}
【问题讨论】:
-
hmmm 可以对
2.33之类的值执行什么操作以使其变为233?要是电脑能成倍增加就好了…… -
hmmm 2.33和233是什么关系?
-
您要保留多少个十进制数?只有 2 为 (2.33 => 233) ?
-
当您尝试将
2.33放入double时,您真正得到的实际上是2.3300000000000000710542735760100185871124267578125(即5246693565886628 / 2**51)。所以你想要什么?如果double是Math.PI,你会在哪里截断(如果你使用目标类型int是32 位类型)?