问题标签 [number-formatting]

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 投票
2 回答
4344 浏览

java-me - J2ME - 数字格式

我需要使用 J2ME 中的模式格式化十进制数字,就像 java DecimalFormat一样。

我看到了移植Format / NumberFormat / DecimalFormat的选项。

你能建议准备使用实现或库吗?

谢谢!

0 投票
15 回答
34409 浏览

c# - 格式数字,如堆栈溢出(以 K 后缀四舍五入到千位)

如何用 C# 格式化像 SO 这样的数字?

10, 500, 5k, 42k, ...

0 投票
2 回答
4396 浏览

gwt - 高精度小数的 GWT NumberFormat 问题

我正在使用 GWT 2.0,当我尝试使用 NumberFormat 格式化 Double 时,结果与预期不符:

格式化字符串:0.02147484

如您所见,格式化的值是错误的(这可以在 gwt 展示中看到)。这与我使用的自定义格式(#.########)有关吗?或者这是 GWT 格式化程序中的错误?如果这是一个错误,是否有人找到了解决方法?谢谢。

0 投票
2 回答
947 浏览

c# - t-sql 中模仿 int.ToString("D4"); 的高效算法;

请建议以文本格式有效地实现前面的数字零。

0 投票
2 回答
1127 浏览

java - 如何获得与用户从 JFormattedTextField 看到的值相同的值?

我正在使用NumberFormatterand JFormattedTextField,但.getValue()不会返回与用户看到的相同的值。

我认为输入字符串是使用 NumberFormats 解析方法解析的,并且我从NumberFormat.getNumberInstance();实际的语言环境中获得了 Numberformat。所以我认为我不能轻易扩展它并编写自己的解析方法?

例如,如果用户键入1234.487 thegetValue()将返回: 1234.487但用户将被显示1,234.49

另一个例子,使用NumberFormat.getCurrencyInstance();. 用户类型1234.487getValue()将返回1234.487,但用户将被显示$1,234.49

相反,如果 Formatter 无法在不四舍五入的情况下格式化值,我希望生成 ParseException。如果用户类型相同4.35b6,默认情况下格式化程序将显示4.35并且值将是4.35,但我想要 ParseException,因为用户输入了无效值。

这是我尝试过的代码:

如何获得与用户看到的相同的价值?

0 投票
1 回答
1132 浏览

java - java从本地化的NumberFormat生成正则表达式

是否有任何干净的方法来生成将匹配使用语言环境配置的 java NumberFormat 格式化的值的正则表达式?或者一些图书馆会这样做?

这是在一个基于 Web 的应用程序中,我想将正则表达式传递到 jsp 页面,以便对数字字段进行 javascript 验证。语言环境因每个用户而异,我不想为每种数字格式手动编码特定的正则表达式。

0 投票
4 回答
29415 浏览

c# - 是否可以为 .NET 应用程序或线程设置 CultureInfo?

我有一个用 C# 编写的应用程序,它没有 GUI 或 UI,而是编写由另一个应用程序(XML 和其他应用程序)解析的文件。

我有一个客户,其 CultureInfo 的 NumberDecimalSeparator 设置为逗号,这会导致浮点数的解析错误(PI 最终会变成3,1415)。

我想要一种在应用程序中为所有线程全局设置 CultureInfo 的方法。我试过了:

  1. 将CurrentThread.CurrentCulture设置为Main()中的第一行的(显然)习惯方法,但它似乎被重置了。
  2. http://www.codeproject.com/KB/cs/Change_App_Culture.aspx上的变体/扩展
  3. 对应用程序中显式创建的线程执行相同的操作(#1)。

并且更改为使用显式格式不是一种选择(150K+ 行,大多数由前雇员编写)。

[编辑] 应用程序绑定到一个套接字并处理来自专用客户端的请求。根据请求类型,它产生不同的处理程序类。

抱歉,当我第一次发帖时,我应该在 #1 中澄清(我虽然)我已经在所有显式生成的处理程序中都这样做了。

事实证明,我错过了导致问题的线程/处理程序。 所以应用程序现在工作正常,但问题仍然是是否可以在所有线程上设置文化。

如果它可以遍历所有线程,它也将解决问题。所以:

如何获取当前进程中的所有Thread对象(不是ProcessThread )?

0 投票
3 回答
10977 浏览

c# - 为什么.NET decimal.ToString(string) 从零四舍五入,显然与语言规范不一致?

我看到,在 C# 中,将 a 舍入decimal,默认情况下使用MidpointRounding.ToEven. 这是意料之中的,也是 C# 规范所规定的。但是,鉴于以下情况:

  • 一种decimal dVal
  • 一种格式string sFmt,当传入 时dVal.ToString(sFmt),将产生一个包含四舍五入版本的字符串dVal

...很明显,decimal.ToString(string)返回一个使用MidpointRounding.AwayFromZero. 这似乎与 C# 规范直接矛盾。

我的问题是:这种情况有充分的理由吗?或者这只是语言的不一致?

下面,作为参考,我包含了一些代码,这些代码写入控制台各种舍入运算结果和decimal.ToString(string)运算结果,每个结果都针对值数组中的每个decimal值。实际输出是嵌入的。之后,我在decimal类型的 C# 语言规范部分包含了一个相关段落。

示例代码:


C# 语言规范(“十进制类型”)第 4.1.7 节中的段落(在此处获取完整规范(.doc)):

对十进制类型的值进行运算的结果是计算精确结果(保留为每个运算符定义的比例)然后四舍五入以适应表示的结果。结果四舍五入到最接近的可表示值,并且当结果同样接近两个可表示值时,四舍五入到在最低有效数字位置具有偶数的值(这称为“银行家四舍五入”)。零结果的符号始终为 0,标度为 0。

很容易看出他们可能没有ToString(string)在这一段中考虑过,但我倾向于认为它符合这个描述。

0 投票
3 回答
4172 浏览

asp.net - String.Format() 用于浮点显示固定数量的位置?

如果我想显示 4 个小数点,那么正确的格式是什么?

0 投票
2 回答
2393 浏览

java - NumberFormat Java 的奇怪行为

我有以下代码来解析一个名为 str 的字符串变量。

我想捕获当 str 不是数字时抛出的异常只是为了验证它。我遇到的问题是它并不总是抛出预期的 ParseException。当字符串 str 以数字开头但随后是字符时,它似乎获取字符串的第一个字符并将它们解析为数字。

例如:

  • 如果 str="a10" 然后抛出 ParseException
  • 如果 str="10a" 则不抛出异常并且 number=10

我不能使用 Double.parseDouble(str) 因为 str 可以有逗号和点,如 1,000.98 并且此方法不理解这种格式。

为什么会这样?我可以用任何其他方式验证它吗?谢谢