问题标签 [decimalformat]

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 投票
3 回答
225 浏览

java - 小数转换

我正在尝试设置十进制值,下面是我的输入字符串

转换为双:

我不明白如何做到这一点,请任何提示。

问候,

柴兔

0 投票
2 回答
427 浏览

java - 为什么 DecimalFormat 忽略分组字符?

我不喜欢 Java 的 DecimalFormat 类的行为。

我正在尝试做的是使用德语区域设置在文本字段中输入值“0.23”(其中“。”是分组字符,而不是小数!!)。

预期结果将是:

  • 启用分组:ParseException,因为分组字符在错误的位置

  • 禁用分组:ParseException,因为“。” 字符是不允许的。

实际结果:

  • 启用分组:23.0

  • 禁用分组:0.0

有谁知道更好的实现,或者我应该将其归档为 Java Bug 吗?

0 投票
3 回答
1859 浏览

java - DecimalFormat 用非数字转换数字

使用此类数字时,使用 DecimalFormat 不会产生解析异常:

123你好

这显然不是一个真正的数字,并转换为 123.0 值。我怎样才能避免这种行为?

作为旁注 hello123 确实给出了一个例外,这是正确的。

谢谢,马塞尔

0 投票
1 回答
5361 浏览

java - 使用 DecimalFormat(强制点)和 drawString()(y 似乎是错误的)

两个问题合二为一,但我有一个非常简短的测试用例来证明我的问题:

当我使用它时,我得到:

这张图片产生了:

数字.png

我的问题:

  1. 如何在不切换语言环境的情况下强制 DecimalFormat 使用点而不是逗号?
  2. w 似乎是正确的,但是 0 作为高度有什么问题 - 为什么数字会打印在屏幕外?

谢谢!亚历克斯

更新:

我最终使用了语言环境。str.replace(".", ",") 注释也很酷。

0 投票
3 回答
11195 浏览

java - 使用具有更多数字的 Java Double.toString() 样式格式(DecimalFormat 不适用于低精度数字)

核心问题是我需要记录一系列双打,每个双打都有不同数量的有效数字。这些数字的有效数字位数差异很大。有些有 0(例如 5257),有些有 2(例如 1308.75),有些一直到 7(例如 124.1171875)。基本上小数点后0到7位有效数字之间的所有内容。

标准 Double.toString() 对除 7 位有效数字之外的所有内容都非常有效。即一直到 6 位,有效数字全部打印,没有任何无效数字。但是对于具有 7 个有效数字的那些, toString() 将最后一位数字四舍五入。IE

当然,我尝试使用 DecimalFormat("#.#######"),这解决了丢失有效数字的问题,但它打印了许多低精度双精度数的无效数字。IE

这也是不可接受的,因为 1) 它会浪费大量空间(通常每天记录 > 2 GB 的数据),以及 2) 它会弄乱使用日志的应用程序。

在识别有效数字方面,与 toString() 相比,DecimalFormat 似乎很糟糕,有没有办法解决它?我只想使用 toString() 样式处理有效数字,并将最大位数从 6 扩展到 7。

有任何想法吗?谢谢

0 投票
1 回答
2635 浏览

java - 科学记数法到十进制

我有一个双精度数,我正在尝试将其转换为小数。当我使用十进制格式来实现这一点时,我得到以下信息:

我希望输出为 .00021;但是,我得到 2.1E-4。谁能帮助解释如何获得 .00021 而不是 2.1E-4?

0 投票
2 回答
1427 浏览

java - NumberFormat 解析问题

我对将 String 解析为 Double 时遇到的这种特殊的“错误”感到非常困惑。

我已经设置了NumberFormat属性和符号。

当传递一个 15 位和 2 位小数的字符串(例如str = "333333333333333,33")并用结果解析它时Number num = NumberFormat.parse(str)会省略一个数字。

num 的实际值为3.333333333333333E14

它似乎与所有 1、2 和 4 的字符串一起工作......

任何人都可以启发我吗?

干杯恩里科

0 投票
1 回答
1371 浏览

java - 没有科学记数法的 DecimalFormat

我有一个像这样的 DecimalFormat:

然后我有 3 种方法,它们只返回时间、潜在和当前的浮点值,在最后两个的情况下有许多小数。所以我试图得到一个带有 3 个值的输出消息,所以:

时间只是从 0 到 10 计算秒数,没有任何小数,直到达到 10 为止看起来还不错。然后它显示 1E+1。我只是不明白为什么,因为我已经阅读了 API,如果我不在 DecimalFormat 中使用“E”字符,它不应该是科学记数法。

此外,潜力从 0 到某个值,使用 3 位小数。看起来不错,但是从 0 到 0.01,它以 4 位小数显示,最后一位始终为 0。

对 DecimalFormat 的这种行为有什么解释吗?我究竟做错了什么?

0 投票
15 回答
346091 浏览

java - 如何在 Java 中将双精度数截断为仅两位小数?

例如,我有变量 3.545555555,我想将其截断为 3.54。

0 投票
2 回答
218 浏览

java - 在数字和小数之间插入自定义字符串 - Java DecimalFormat

您好,提前感谢您的帮助。

我在使用 Java 函数在 HTML 中标记价格时遇到了一些问题。

看来,无论我做什么,我都无法在数字和小数之间插入自定义内容(抛出非法参数异常)。是否有任何已知的方法来实现以下目标:

假设语言环境和数字已正确初始化。