问题标签 [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.
java - 小数转换
我正在尝试设置十进制值,下面是我的输入字符串
转换为双:
我不明白如何做到这一点,请任何提示。
问候,
柴兔
java - 为什么 DecimalFormat 忽略分组字符?
我不喜欢 Java 的 DecimalFormat 类的行为。
我正在尝试做的是使用德语区域设置在文本字段中输入值“0.23”(其中“。”是分组字符,而不是小数!!)。
预期结果将是:
启用分组:ParseException,因为分组字符在错误的位置
禁用分组:ParseException,因为“。” 字符是不允许的。
实际结果:
启用分组:23.0
禁用分组:0.0
有谁知道更好的实现,或者我应该将其归档为 Java Bug 吗?
java - DecimalFormat 用非数字转换数字
使用此类数字时,使用 DecimalFormat 不会产生解析异常:
123你好
这显然不是一个真正的数字,并转换为 123.0 值。我怎样才能避免这种行为?
作为旁注 hello123 确实给出了一个例外,这是正确的。
谢谢,马塞尔
java - 使用 DecimalFormat(强制点)和 drawString()(y 似乎是错误的)
两个问题合二为一,但我有一个非常简短的测试用例来证明我的问题:
当我使用它时,我得到:
这张图片产生了:
我的问题:
- 如何在不切换语言环境的情况下强制 DecimalFormat 使用点而不是逗号?
- w 似乎是正确的,但是 0 作为高度有什么问题 - 为什么数字会打印在屏幕外?
谢谢!亚历克斯
更新:
我最终使用了语言环境。str.replace(".", ",") 注释也很酷。
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。
有任何想法吗?谢谢
java - 科学记数法到十进制
我有一个双精度数,我正在尝试将其转换为小数。当我使用十进制格式来实现这一点时,我得到以下信息:
我希望输出为 .00021;但是,我得到 2.1E-4。谁能帮助解释如何获得 .00021 而不是 2.1E-4?
java - NumberFormat 解析问题
我对将 String 解析为 Double 时遇到的这种特殊的“错误”感到非常困惑。
我已经设置了NumberFormat
属性和符号。
当传递一个 15 位和 2 位小数的字符串(例如str = "333333333333333,33"
)并用结果解析它时Number num = NumberFormat.parse(str)
会省略一个数字。
num 的实际值为3.333333333333333E14
。
它似乎与所有 1、2 和 4 的字符串一起工作......
任何人都可以启发我吗?
干杯恩里科
java - 没有科学记数法的 DecimalFormat
我有一个像这样的 DecimalFormat:
然后我有 3 种方法,它们只返回时间、潜在和当前的浮点值,在最后两个的情况下有许多小数。所以我试图得到一个带有 3 个值的输出消息,所以:
时间只是从 0 到 10 计算秒数,没有任何小数,直到达到 10 为止看起来还不错。然后它显示 1E+1。我只是不明白为什么,因为我已经阅读了 API,如果我不在 DecimalFormat 中使用“E”字符,它不应该是科学记数法。
此外,潜力从 0 到某个值,使用 3 位小数。看起来不错,但是从 0 到 0.01,它以 4 位小数显示,最后一位始终为 0。
对 DecimalFormat 的这种行为有什么解释吗?我究竟做错了什么?
java - 如何在 Java 中将双精度数截断为仅两位小数?
例如,我有变量 3.545555555,我想将其截断为 3.54。
java - 在数字和小数之间插入自定义字符串 - Java DecimalFormat
您好,提前感谢您的帮助。
我在使用 Java 函数在 HTML 中标记价格时遇到了一些问题。
看来,无论我做什么,我都无法在数字和小数之间插入自定义内容(抛出非法参数异常)。是否有任何已知的方法来实现以下目标:
假设语言环境和数字已正确初始化。