- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试构建一个函数,该函数采用 2 位小数的价格并找到下一个最高的回文。我知道还有其他几种方法可以解决这个问题,但我很好奇为什么我的方法不起作用。我是 JS 新手,所以这可能是一个简单的问题。任何建议都会很棒。
我将其分成更小的 block ,并在下面解释了我希望它执行的操作:
var ask = prompt("Enter a price");
var reverseIt = function (x) {
x = (parseFloat(x) * 100).toString();
for (var i = (x.length - 1); i >= 0; i--) {
x.substr(i, 1);
}
return
};
reverseIt 函数接受一个参数,删除小数点 (* 100) 并反转数字。
var removeDec = function (j) {
return (parseFloat(j) * 100).toString();
}
removeDec 函数接受一个参数,删除小数点 (* 100),然后将其转换回字符串。这对于比较两个“数字”字符串来说是多余的吗?我应该使用 Number() 和 String() 函数吗?
var findDrome = function (i) {
for (var i; removeDec(i) != reverseIt(i); i += (1 / 100)) {
if ((removeDec(i) + 1).toString() == reverseIt(i)) {
document.write(i + (1 / 100));
}
} return
};
findDrome(ask);
findDrome 函数将开始时的询问提示作为参数。如果不带小数的数字与不带小数的倒数不匹配,则将其增加 0.01。在循环结束之前,我希望它检查前面的数字 +1(因为它是 * 100)是否等于相反的数字,如果是,则写入下一个数字。
它不起作用,所以我尝试添加 parseFloat 和 toString 来指定更严格/更显式的转换。我还使用了松散相等运算符,但它仍然不起作用。
我的问题:这是一个转换或语法问题,还是您不能比较两个函数的输出?我应该比较 2 个变量吗?如果是,如何将 reverseIt 函数中的 for 循环分配给变量?
最佳答案
您的程序存在许多问题。首先,您的 reverseIt
函数永远不会返回反转值。变量x
被传入,但它从未在for
循环中更新 - x.substr()
创建一个新的字符串实例,但从未分配返回到 x,因此它的值永远不会改变。事实上,由于 reverseIt
返回 undefined
,findDrome
中的 for
循环变得无限。
另一个可能的问题是,您将 float 递增 1/100
,但浮点值没有精确的表示形式。我不知道这是否真的影响您的代码(因为它目前永远不会返回正确的值),但这是您可能需要担心的事情。这可能会影响 parseFloat
(它可能返回与其解析的字符串略有不同的浮点值)。
使用toFixed()会将数字 chop 为小数点后两位。然后,您可以将数字转换为字符串并删除小数点字符,而不是在字符串和数字之间来回转换数字。
您可能想阅读 floating-point arithmetic (如果您还不熟悉的话)。
作为最后一条评论,您应该永远、永远依赖 Javascript 来终止您的语句 - 您应该始终使用 ;
来终止语句,就像其他正确的 C 风格一样语言。省略 ;
-s (即使 Javascript 可以让你逃脱它)被认为是非常糟糕的做法。
关于javascript - 如何比较一个数字串并逆向查找下一个最大的回文数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21819731/
我有一个 Windows 应用程序,它使用此 C 代码的反向(下面的解码)来加密用户密码: static void PasswordDecode(char * szPassword) { char s
我目前正在尝试“破解”一个 Linux 嵌入式设备。此设备有一个不应使用的 telnet 守护程序。不管怎样,我已经从制造商网站上获取了二进制固件并成功地提取了根文件系统。顺便说一下,我现在有了/et
前言 你可以独善其身 但你不能兼济天下 。 简介 其实这部分是使用教程,github上面有备份的下载链接,只是可能不更新了,V2.2安装之后 一把快刀,很简洁的界面 点击界面里
我在具有相关质量的 3D 框中有几个点(x、y、z 坐标)。我想绘制在给定半径 R 的球体中发现的质量密度直方图。 我已经编写了一个代码,如果我没有犯任何我认为我可能有的错误,它的工作方式如下: 我的
我有一个代码函数,我试图扭转它的影响,但没有成功。我原来的功能是: ror al,1 // rotates the al part of
我想知道,是否有任何指南可用于识别应用程序二进制文件中与符号链接(symbolic link)相关的函数? 我们以BusyBox为例,/bin/ping是/bin/BusyBox的符号链接(symbo
所以我在查看一个受感染的 WordPress 网站时看到了这个注入(inject)的 js。它基本上进行了一轮混淆(charCodeAt(13-3,9-2等)。然后,它输出以下内容: var key
我在尝试获取引用未审计实体的审计实体时遇到问题。在我们的应用程序中,某些实体是在不使用 hibernate 的情况下引导的,这些实体是我们的元模型,不需要审计。 工作示例: public class
背景: 我们有一个基于 maven 的 java 项目,目标是 JRE 1.7,但是源代码使用了 lambda,所以我们使用 retrolambda 来转换 Java 8 源代码到 Java 7。我们
我是一名优秀的程序员,十分优秀!