问题标签 [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.

0 投票
6 回答
1774 浏览

algorithm - 制作人类可读的整数表示

对于那些喜欢这种事情的人来说,这是一个编码问题。让我们看看你对一个函数的实现(当然是用你选择的语言),它返回一个指定整数的人类可读的字符串表示。例如:

  • humanReadable(1) 返回“一”。
  • humanReadable(53) 返回“五十三”。
  • humanReadable(723603) 返回“七十二万三千六百零三”。
  • humanReadable(1456376562) 返回“十亿、四亿五千六百万、三十七万六千、五百六十二”。

特别聪明/优雅的解决方案的奖励积分!

这似乎是一个毫无意义的练习,但这种算法在现实世界中有很多应用程序(尽管支持高达 10 亿的数字可能有点矫枉过正:-)

0 投票
14 回答
148345 浏览

perl - 如何判断一个变量在 Perl 中是否有数值?

Perl 中是否有一种简单的方法可以让我确定给定变量是否为数字?类似于以下内容:

将是理想的。-w在使用开关时不会发出警告的技术当然是首选。

0 投票
50 回答
1538263 浏览

javascript - 在 JavaScript 中验证十进制数字 - IsNumeric()

在 JavaScript 中验证十进制数字的最简洁、最有效的方法是什么?

奖励积分:

  1. 明晰。解决方案应该干净简单。
  2. 跨平台。

测试用例:

0 投票
13 回答
35159 浏览

c - 八进制数字文字:什么时候?为什么?曾经?

我从来没有在我的代码中使用八进制数,也没有遇到任何使用它的代码(尽管是十六进制和位旋转)。

我大约在 1994 年开始使用 C/C++ 进行编程,所以也许我对这个还太年轻?旧代码是否使用八进制?C 通过添加 0 来支持这些,但是使用这些以 8 为基数的数字文字的代码在哪里?

0 投票
12 回答
12969 浏览

algorithm - 如何从写成单词的数字中读取值?

众所周知,数字可以写成数字,也可以用它们的名字来称呼。虽然可以找到很多将 123 转换为 123 的示例,但我找不到如何将其反过来转换的好示例。

一些警告:

  1. 基数/名义或序数:“一”和“第一”
  2. 常见拼写错误:“四十”/“四十”
  3. 百/千:2100 -> “2100”和“2010”
  4. 分隔符:“十一百五十二”,还有“十一百五十二”或“十一百五十二”等等
  5. 俗语:“三十多岁”
  6. 分数:'三分之一','五分之二'
  7. 常用名称:“一打”、“半”

可能还有更多尚未列出的警告。假设算法需要非常健壮,甚至可以理解拼写错误。

我应该阅读哪些领域/论文/研究/算法来学习如何编写所有这些?信息在哪里?

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

0 投票
9 回答
26400 浏览

c - 确定字符串是 ANSI C 中的整数还是浮点数

仅使用 ANSI C,确定 C 样式字符串是整数还是实数(即浮点数/双精度数)的最佳方法是什么?

0 投票
7 回答
3351 浏览

language-agnostic - 防止算术上溢和下溢的最有效做法

防止算术上溢下溢的最有效做法是什么?

想到的一些例子是:

  • 基于有效输入范围的测试
  • 使用正式方法进行验证
  • 不变量的使用
  • 使用语言功能或库在运行时检测(这不会阻止它)
0 投票
26 回答
58840 浏览

algorithm - 如何将浮点数转换为人类可读的分数?

假设我们有0.33,我们需要输出1/3
如果有0.4,我们需要输出2/5

这个想法是让它易于阅读,让用户理解“ x 部分来自 y ”作为理解数据的更好方式。

我知道百分比是一个很好的替代品,但我想知道是否有一种简单的方法可以做到这一点?

0 投票
5 回答
4715 浏览

perl - 如何在 Perl 中将数字转换为多重形式?

您是否知道一种简单直接的方法/子/模块,它允许我将数字(例如 1234567.89)转换为易于阅读的形式 - 例如 1.23M?

现在我可以通过多次比较来做到这一点,但我对我的方法不满意:

感谢您的帮助!

0 投票
16 回答
94967 浏览

java - Java中的String to Int - 可能是坏数据,需要避免异常

既然 Java 没有可空类型,也没有 TryParse(),那么如何在不引发异常的情况下处理输入验证?

通常的方式:

我可以使用正则表达式来检查它是否可解析,但这似乎也有很多开销。

处理这种情况的最佳做法是什么?

编辑:理由:关于异常处理的讨论很多,一般的态度是异常应该只用于意外情况。但是,我认为糟糕的用户输入是意料之中的,并不罕见。是的,这确实是一个学术观点。

进一步编辑:

一些答案确切地说明了 SO 有什么问题。你忽略了被问到的问题,并回答了另一个与它无关的问题。问题不是询问层之间的过渡。如果数字不可解析,问题不是要返回什么。众所周知,val = Integer.MIN_VALUE; 对于这个完全无上下文的代码片段的应用程序来说,这正是正确的选择。