可以说我有double
42.433243,我想将其转换为整数42433243.C#双整数
是什么做的,当小数长度是随机的代码?
进一步的例子:
45.25 => 4525
125.152254 => 125152254
etc...
可以说我有double
42.433243,我想将其转换为整数42433243.C#双整数
是什么做的,当小数长度是随机的代码?
进一步的例子:
45.25 => 4525
125.152254 => 125152254
etc...
int result = Convert.ToInt32(Regex.Match(digits.Replace(".","").Replace(",",""), @"^\d+$").Value);
如果小数点分隔符既不是','也不是''。另外,将一个数字转换为一个字符串并返回一个数字总是相当不雅。此外,这个答案缺乏解释。 –
也许类似这样的工作。
while ((double_num - Math.floor(double_num)) != 0.0) double_num *= 10;
int num = (int) double_num;
更直接的方法是将数字转换为decimal
并检查这些位。
前96个最低有效位代表尾数,而32个最高有效位代表指数。所以你感兴趣的实际值是32个最低有效位。 Decimal.GetBits()
方法以位数组的形式返回位,因此您只需要获取数组中的第一个int即可。只要数字不超过int.MaxValue
,你就是金。
var number = 42.433243;
var asDecimal = (Decimal)number;
var bits = Decimal.GetBits(asDecimal);
var digits = bits[0]; // 42433243
不担心溢出? – Oded
你有什么代码? –
'12.1'你想要什么? 121或1210或12100 .... – I4V