Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将double转换为int并保留小数c#_C#_Int_Double_Converter - Fatal编程技术网

将double转换为int并保留小数c#

将double转换为int并保留小数c#,c#,int,double,converter,C#,Int,Double,Converter,我有一个赋值,我应该创建一个方法,将十进制数(double)转换成int,但小数也应该保留 例如。2,33——放入方法并生成-->233 这就是我到目前为止所做的,它只生成一个四舍五入的数字 static int MakeDoubleInt(double x) { int y = (int)x; return y; } 将double转换为字符串,再次删除,TryParse到int static int MakeDoubleInt(do

我有一个赋值,我应该创建一个方法,将十进制数(double)转换成int,但小数也应该保留

例如。2,33——放入方法并生成-->233

这就是我到目前为止所做的,它只生成一个四舍五入的数字

    static int MakeDoubleInt(double x)
    {
        int y = (int)x;

        return y;
    }

double
转换为字符串,再次删除
TryParse到
int

static int MakeDoubleInt(double x)
{
    string str = x.ToString();
    str = str.Replace(",", string.Empty);

    int number;
    int.TryParse(str, out number);

    return number;
}
方法:

int i = MakeDoubleInt(d);

hmmm如何处理像
2.33
这样的值,使其成为
233
?如果计算机能乘法…嗯,2.33和233之间的关系是什么?你想保留多少十进制数字?只有两个as(2.33=>233)?当你尝试将
2.33
放入
double
,你真正得到的是
2.330000000000000710542735760100185871124267578125
(即
5246693565886628/2**51
)。那你想要什么?如果
double
Math.PI
,您将在哪里截断(如果您使用32位类型的目标类型
int
plus1
。[填充文本。请忽略]如果
x
7E-05
,该怎么办?如果
x
56.789012345
static int MakeDoubleInt(double x)
{
    return int.Parse(x.ToString().Replace(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator, ""));
}