Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.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 如何通过parseFloat将变量设置为小数?_Javascript - Fatal编程技术网

Javascript 如何通过parseFloat将变量设置为小数?

Javascript 如何通过parseFloat将变量设置为小数?,javascript,Javascript,我的第一个剧本有问题。当我在脚本中将mp手动更改为1.5时,它就会工作并且bet=15。但是,当我用功能单击按钮changemp,写入1.5,然后单击确定时,它将赌注乘以1,而不是乘以1.5。(这不是完整的脚本,只是其中的几行:D) 这是因为您使用的是parseInt,1.5中的整数是1。只是不要在and changemp()函数中使用parseInt,它会按照您的需要工作 您也可以使用parseFloat。但是当你进行高级计算时,parseFloat会设置很多小数 因为您使用了parseInt

我的第一个剧本有问题。当我在脚本中将
mp
手动更改为
1.5
时,它就会工作并且
bet=15
。但是,当我用功能单击按钮
changemp
,写入
1.5
,然后单击确定时,它将赌注乘以
1
,而不是乘以
1.5
。(这不是完整的脚本,只是其中的几行:D)


这是因为您使用的是
parseInt
,1.5中的整数是1。只是不要在and changemp()函数中使用
parseInt
,它会按照您的需要工作


您也可以使用
parseFloat
。但是当你进行高级计算时,
parseFloat
会设置很多小数

因为您使用了parseInt而不是praseFloat函数

parseInt将只返回整数,如果我们传递十进制值,那么它将返回上限值

如果数字也可以是小数位,请使用parseFloat

function changemp() {
  mp = parseFloat(prompt("Please enter the new multiplier", mp));
}

嗯。。。这很奇怪,但是当我删除parseInt或parseFloat时(


它看起来很有效:)但非常感谢大家的帮助,每一个知识都是有用的。

本不打算发布答案,但因为这或多或少会成为一种教程体验,我会:

JavaScript是弱类型的。它可以转换不同的类型,而无需强制转换。如果在运行时它成功了,如果不是失败了,那就太棒了

函数
prompt
返回一个字符串值。您希望确保应用程序中使用的值是
浮点
整数
。两者都是JavaScript中的对象类型
number
,因此不是
字符串
parseFloat
parseInt
用于将字符串值转换为数字。它们有缺点。它们只转换字符串开头的数值(或者更准确地说,截断字符串的其余部分)

看:

var string1=“测试字符串1”;
var string2=“1测试字符串”;
log(parseInt(string1,10))//楠

log(parseInt(string2,10))//1
需要像问题标题所说的那样使用parseFloat(您有parseInt),并且上面的代码不会更改,因为代码已经运行。。。没有人真正关心你的年龄,以后的问题就不要再提了
parseInt
只返回整数。尝试
parseFloat
。很高兴您开始学习编程。作为良好做法。用分号
结束您的行parseFloat
。Prompt返回一个字符串,您希望确保使用浮点或整数。您的解决方案之所以有效,是因为JavaScript是弱类型的,并且会自动将字符串值转换为浮点值。如果在
C
或其他强类型语言中执行此操作,则会失败。实际上,请使用number()函数而不是parseFloat或parseInt进行检查。检查mp是否在int和string之间变化。哇+代表你。我知道我可能在写剧本时做了更多的决定。当你学习一门语言大约1-2周的时候,很难把每件事都做好。顺便说一句,我不是从第1行开始写这个脚本的,我是受另一个脚本的启发,它的功能比我的小。
function changemp() {
  mp = parseFloat(prompt("Please enter the new multiplier", mp));
}
function changemp() {
mp = prompt("Please enter the new multiplier", mp);
}