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
。很高兴您开始学习编程。作为良好做法。用分号结束您的行默认情况下,@epascarello,关于年龄线是正确的,但作为一名教师,我有点喜欢它。问问题需要勇气!让你对回答/评论的语气三思而后行。哦,我错了。我已经尝试过使用parseFlat而不是parseInt,但结果相同。请共享您的完整代码,错误可能来自其他地方。请自己想想为什么在这种情况下使用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);
}