问题标签 [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.
java-me - J2ME - 数字格式
我需要使用 J2ME 中的模式格式化十进制数字,就像 java DecimalFormat一样。
我看到了移植Format / NumberFormat / DecimalFormat的选项。
你能建议准备使用实现或库吗?
谢谢!
c# - 格式数字,如堆栈溢出(以 K 后缀四舍五入到千位)
如何用 C# 格式化像 SO 这样的数字?
10
, 500
, 5k
, 42k
, ...
gwt - 高精度小数的 GWT NumberFormat 问题
我正在使用 GWT 2.0,当我尝试使用 NumberFormat 格式化 Double 时,结果与预期不符:
格式化字符串:0.02147484
如您所见,格式化的值是错误的(这可以在 gwt 展示中看到)。这与我使用的自定义格式(#.########)有关吗?或者这是 GWT 格式化程序中的错误?如果这是一个错误,是否有人找到了解决方法?谢谢。
c# - t-sql 中模仿 int.ToString("D4"); 的高效算法;
请建议以文本格式有效地实现前面的数字零。
java - 如何获得与用户从 JFormattedTextField 看到的值相同的值?
我正在使用NumberFormatter
and JFormattedTextField
,但.getValue()
不会返回与用户看到的相同的值。
我认为输入字符串是使用 NumberFormats 解析方法解析的,并且我从NumberFormat.getNumberInstance();
实际的语言环境中获得了 Numberformat。所以我认为我不能轻易扩展它并编写自己的解析方法?
例如,如果用户键入1234.487
thegetValue()
将返回:
1234.487
但用户将被显示1,234.49
另一个例子,使用NumberFormat.getCurrencyInstance();
. 用户类型1234.487
和getValue()
将返回1234.487
,但用户将被显示$1,234.49
相反,如果 Formatter 无法在不四舍五入的情况下格式化值,我希望生成 ParseException。如果用户类型相同4.35b6
,默认情况下格式化程序将显示4.35
并且值将是4.35
,但我想要 ParseException,因为用户输入了无效值。
这是我尝试过的代码:
如何获得与用户看到的相同的价值?
java - java从本地化的NumberFormat生成正则表达式
是否有任何干净的方法来生成将匹配使用语言环境配置的 java NumberFormat 格式化的值的正则表达式?或者一些图书馆会这样做?
这是在一个基于 Web 的应用程序中,我想将正则表达式传递到 jsp 页面,以便对数字字段进行 javascript 验证。语言环境因每个用户而异,我不想为每种数字格式手动编码特定的正则表达式。
c# - 是否可以为 .NET 应用程序或线程设置 CultureInfo?
我有一个用 C# 编写的应用程序,它没有 GUI 或 UI,而是编写由另一个应用程序(XML 和其他应用程序)解析的文件。
我有一个客户,其 CultureInfo 的 NumberDecimalSeparator 设置为逗号,这会导致浮点数的解析错误(PI 最终会变成3,1415)。
我想要一种在应用程序中为所有线程全局设置 CultureInfo 的方法。我试过了:
- 将CurrentThread.CurrentCulture设置为Main()中的第一行的(显然)习惯方法,但它似乎被重置了。
- http://www.codeproject.com/KB/cs/Change_App_Culture.aspx上的变体/扩展
- 对应用程序中显式创建的线程执行相同的操作(#1)。
并且更改为使用显式格式不是一种选择(150K+ 行,大多数由前雇员编写)。
[编辑] 应用程序绑定到一个套接字并处理来自专用客户端的请求。根据请求类型,它产生不同的处理程序类。
抱歉,当我第一次发帖时,我应该在 #1 中澄清(我虽然)我已经在所有显式生成的处理程序中都这样做了。
事实证明,我错过了导致问题的线程/处理程序。 所以应用程序现在工作正常,但问题仍然是是否可以在所有线程上设置文化。
如果它可以遍历所有线程,它也将解决问题。所以:
如何获取当前进程中的所有Thread对象(不是ProcessThread )?
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)
在这一段中考虑过,但我倾向于认为它符合这个描述。
asp.net - String.Format() 用于浮点显示固定数量的位置?
如果我想显示 4 个小数点,那么正确的格式是什么?
java - NumberFormat Java 的奇怪行为
我有以下代码来解析一个名为 str 的字符串变量。
我想捕获当 str 不是数字时抛出的异常只是为了验证它。我遇到的问题是它并不总是抛出预期的 ParseException。当字符串 str 以数字开头但随后是字符时,它似乎获取字符串的第一个字符并将它们解析为数字。
例如:
- 如果 str="a10" 然后抛出 ParseException
- 如果 str="10a" 则不抛出异常并且 number=10
我不能使用 Double.parseDouble(str) 因为 str 可以有逗号和点,如 1,000.98 并且此方法不理解这种格式。
为什么会这样?我可以用任何其他方式验证它吗?谢谢