Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.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
Javascript 如何在不舍入的情况下从长数字中删除小数?_Javascript_Floating Point - Fatal编程技术网

Javascript 如何在不舍入的情况下从长数字中删除小数?

Javascript 如何在不舍入的情况下从长数字中删除小数?,javascript,floating-point,Javascript,Floating Point,我想知道如何在不需要四舍五入的情况下去掉大数中的小数? 我的浮动是: 数字=32.223516 我想要的结果是3223516 当我这样做时: parseInt(数字*1000000,10)它给了我3223515 如果我使用Math.ceil或Math.round,那么对于需要进行四舍五入的案例,这将是一个问题 有没有更干净的方法 提前谢谢 Number.parseInt( yourVariable.toString().replace('.','') ); 试试这个: let number=3

我想知道如何在不需要四舍五入的情况下去掉大数中的小数? 我的浮动是: 数字=32.223516

我想要的结果是3223516

当我这样做时: parseInt(数字*1000000,10)它给了我3223515

如果我使用Math.ceil或Math.round,那么对于需要进行四舍五入的案例,这将是一个问题

有没有更干净的方法

提前谢谢

Number.parseInt(
yourVariable.toString().replace('.','')
);
试试这个:

let number=32.223516

log(parseInt(number.toString().replace('.','')
如果您知道该数字总是需要乘以1000000才能得到它的整数版本,请使用
Math.round


console.log(Math.round(32.223516*1000000))这是JavaScript如何将所有数字作为浮点数处理的示例

在这种情况下,可以帮助您的是,如果您将数字转换为字符串形式,则使用toFixed()方法仅保留小数点后所需的数字量,在您的情况下可能是0,该方法将相应地进行转换和舍入,如下所示:

number = 32.223513;
numberToFixed = (num * 1000000).toFixed(0); //argument is amount of numbers to be retained after decimal point

千万不要在非字符串的东西上使用
parseInt
。你会知道,乘以1000000会得到数字的整数版本吗?
32.223516*1000000
不起作用的原因是它会产生
3222515.999999999 6
(可能会让我的
9
s倒数,但足够接近)。浮点运算总是有问题的,所以如果你做数学运算,或者坚持字符串操作,你需要使用某种形式的舍入。是否有任何原因导致您无法转换为字符串并删除
?(需要明确的是,可能有这样一个原因;浮点的字符串形式并不总是非常大或非常小的值所期望的形式)