问题标签 [numbers]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
algorithm - 制作人类可读的整数表示
对于那些喜欢这种事情的人来说,这是一个编码问题。让我们看看你对一个函数的实现(当然是用你选择的语言),它返回一个指定整数的人类可读的字符串表示。例如:
- humanReadable(1) 返回“一”。
- humanReadable(53) 返回“五十三”。
- humanReadable(723603) 返回“七十二万三千六百零三”。
- humanReadable(1456376562) 返回“十亿、四亿五千六百万、三十七万六千、五百六十二”。
特别聪明/优雅的解决方案的奖励积分!
这似乎是一个毫无意义的练习,但这种算法在现实世界中有很多应用程序(尽管支持高达 10 亿的数字可能有点矫枉过正:-)
perl - 如何判断一个变量在 Perl 中是否有数值?
Perl 中是否有一种简单的方法可以让我确定给定变量是否为数字?类似于以下内容:
将是理想的。-w
在使用开关时不会发出警告的技术当然是首选。
javascript - 在 JavaScript 中验证十进制数字 - IsNumeric()
在 JavaScript 中验证十进制数字的最简洁、最有效的方法是什么?
奖励积分:
- 明晰。解决方案应该干净简单。
- 跨平台。
测试用例:
c - 八进制数字文字:什么时候?为什么?曾经?
我从来没有在我的代码中使用八进制数,也没有遇到任何使用它的代码(尽管是十六进制和位旋转)。
我大约在 1994 年开始使用 C/C++ 进行编程,所以也许我对这个还太年轻?旧代码是否使用八进制?C 通过添加 0 来支持这些,但是使用这些以 8 为基数的数字文字的代码在哪里?
algorithm - 如何从写成单词的数字中读取值?
众所周知,数字可以写成数字,也可以用它们的名字来称呼。虽然可以找到很多将 123 转换为 123 的示例,但我找不到如何将其反过来转换的好示例。
一些警告:
- 基数/名义或序数:“一”和“第一”
- 常见拼写错误:“四十”/“四十”
- 百/千:2100 -> “2100”和“2010”
- 分隔符:“十一百五十二”,还有“十一百五十二”或“十一百五十二”等等
- 俗语:“三十多岁”
- 分数:'三分之一','五分之二'
- 常用名称:“一打”、“半”
可能还有更多尚未列出的警告。假设算法需要非常健壮,甚至可以理解拼写错误。
我应该阅读哪些领域/论文/研究/算法来学习如何编写所有这些?信息在哪里?
PS:我的最终解析器实际上应该理解 3 种不同的语言,英语、俄语和希伯来语。也许在稍后阶段会添加更多语言。希伯来语也有男性/女性数字,例如“one man”和“one woman”有不同的“one”——“ehad”和“ahat”。俄语也有其自身的一些复杂性。
谷歌在这方面做得很好。例如:
http://www.google.com/search?q=two+thousand+and+one+hundred+plus+5+dozen+and+four+fifths+in+decimal
(反过来也可以http://www.google.com/search?q=999999999999+in+english)
c - 确定字符串是 ANSI C 中的整数还是浮点数
仅使用 ANSI C,确定 C 样式字符串是整数还是实数(即浮点数/双精度数)的最佳方法是什么?
algorithm - 如何将浮点数转换为人类可读的分数?
假设我们有0.33
,我们需要输出1/3
。
如果有0.4
,我们需要输出2/5
。
这个想法是让它易于阅读,让用户理解“ x 部分来自 y ”作为理解数据的更好方式。
我知道百分比是一个很好的替代品,但我想知道是否有一种简单的方法可以做到这一点?
perl - 如何在 Perl 中将数字转换为多重形式?
您是否知道一种简单直接的方法/子/模块,它允许我将数字(例如 1234567.89)转换为易于阅读的形式 - 例如 1.23M?
现在我可以通过多次比较来做到这一点,但我对我的方法不满意:
感谢您的帮助!
java - Java中的String to Int - 可能是坏数据,需要避免异常
既然 Java 没有可空类型,也没有 TryParse(),那么如何在不引发异常的情况下处理输入验证?
通常的方式:
我可以使用正则表达式来检查它是否可解析,但这似乎也有很多开销。
处理这种情况的最佳做法是什么?
编辑:理由:关于异常处理的讨论很多,一般的态度是异常应该只用于意外情况。但是,我认为糟糕的用户输入是意料之中的,并不罕见。是的,这确实是一个学术观点。
进一步编辑:
一些答案确切地说明了 SO 有什么问题。你忽略了被问到的问题,并回答了另一个与它无关的问题。问题不是询问层之间的过渡。如果数字不可解析,问题不是要返回什么。众所周知,val = Integer.MIN_VALUE; 对于这个完全无上下文的代码片段的应用程序来说,这正是正确的选择。