Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.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 - Fatal编程技术网

如何使用JavaScript删除小数点后的数字?

如何使用JavaScript删除小数点后的数字?,javascript,Javascript,我在HTML网页中使用数字。问题是我想要没有小数的数字 函数copyText(){ var mynumber=document.getElementById(“field1”).value; 警报(mynumber); var mytest=parseInt(mynumber); } Field1: 支票号码 单击按钮时会触发一个功能。该函数将字段1中的文本复制到字段2。返回字符串: (.17*parseInt(prescription.values)*parseInt(cost.value)

我在HTML网页中使用数字。问题是我想要没有小数的数字

函数copyText(){
var mynumber=document.getElementById(“field1”).value;
警报(mynumber);
var mytest=parseInt(mynumber);
}
Field1:

支票号码 单击按钮时会触发一个功能。该函数将字段1中的文本复制到字段2。

返回字符串:

(.17*parseInt(prescription.values)*parseInt(cost.value)).toFixed(0);
返回整数:

Math.round(.17*parseInt(prescription.values)*parseInt(cost.value));
请记住在分析int时使用基数:

parseInt(cost.value, 10)

您应该使用JavaScript的

您是否尝试使用
parseInt

尝试:

console.log(parseInt(ans7));

从数学上讲,使用
floor
函数最有意义。这将为您提供前一个最大整数的实数

ans7 = Math.floor(.17*parseInt(prescription.values)*parseInt(cost.value));

假设您只想截断小数部分(无舍入),这里有一个比
parseInt()
Math.floor()
更短(且更便宜)的替代方案:


使用
int
float
string
输入的
按位或0
行为的进一步示例:

10     | 0 // => 10
10.001 | 0 // => 10
10.991 | 0 // => 10
"10"   | 0 // => 10
"10.1" | 0 // => 10
"10.9" | 0 // => 10

在ES6中,您可以从Math对象使用内置方法
trunc

 Math.trunc(345.99933)

~
操作符是
数学地板()的更快替代品

函数copyText(){
var mynumber=document.getElementById(“field1”).value;
警报(~~mynumber);
}

字段1
支票号码

选择:,。当您说“仍然不起作用”时,告诉您得到的信息会更丰富-错误或工作值还是什么?您的第一个问题是关于浮点数与整数相乘,现在是关于解析字符串,使这些答案中的一些变得无关紧要。他可能已经重复了;尽管出于某种原因,他没有使用
基数
,但我很好奇为什么他没有简单地重复使用
parseInt()
@Jake-
parseInt
。这是
2.3*100
不能产生你所期望的结果。基本上对我来说仍然不起作用。我在图形上设置这些值是按规定的。值是文本类型字段而不是数字,我想这可能是issue@ShahzadBaloch-您确定这是因为您正在查找一个名为
value
的属性和另一个名为
?如果这些值中有一个未定义,您将返回
NaN
。否则,将浮点数乘以两个整数,结果将始终有效。并添加一个基数
ans7=Math.floor(.17*parseInt(prescription.value,10)*parseInt(cost.value,10))我添加了如何将num值更改为不带小数的代码我们真的应该假设速度是这样一个操作的问题吗?它比floor更快,因为floor可以处理多种类型。地板的意图也很明确。新的方法,+1.检查如何在function@Aesthete“地板处理多种类型”–按位或0:
10 | 0=>10
10.1 | 0=>10
“10”| 0=>10
“10.1”| 0=>10
…从语义上来说,
Floor()
当然更合适。@Jake-谢谢你指出这一点。问题不在于方法本身,而是由于浮点运算:
2.3*100=229.99999999997
。尽管如此,我还是在答案中添加了一条免责声明。@Jake在某些情况下,这个问题可以通过添加一个小分数来稍微“推”一下数字——假设你只处理正数。例如,((2.3+0.0000000000 1)*100)| 0===230很好。对于所有其他人来说,它只是增加了一小部分,没有什么大的变化。我正在构建一个模拟引擎,其中速度很重要,不需要完美的精度,我认为这非常适合我的需要
toFixed
有各种问题(例如
(0.595)。toFixed(2)
在Firefox中为0.59,在IE中为0.60),最好使用
Math.round
或类似方法。
 Math.trunc(345.99933)
var num = 233.256;
console.log(num.toFixed(0));

//output 233