gpt4 book ai didi

Java字符串到双重转换

转载 作者:行者123 更新时间:2023-11-29 09:50:57 25 4
gpt4 key购买 nike

我一直在网上阅读有关在 java 中处理 floatdouble 类型的问题。不幸的是,图像仍然不清晰。因此,我直接在这里问。 :(

我的 MySQL 表有多个 DECIMAL(m,d) 列。 m 的范围可以从 5 到 30。d 保持恒定在 2。

问题1.

我应该在 Java 中使用什么等效数据类型来处理(即存储、检索和处理)表中值的大小? (我已经解决了双重问题 - 因此这篇文章)。

问题2.

在尝试从字符串解析 double 值时,出现错误

Double dpu = new Double(dpuField.getText());

例如-

"1" -> java.lang.NumberFormatException: empty String
"10" -> 1.0
"101" -> 10.0
"101." -> 101.0
"101.1" -> 101.0
"101.19" -> 101.1

我做错了什么?将字符串转换为 double 值的正确方法是什么?我应该采取什么措施来对这些值执行操作?

编辑

这是代码-

    System.out.println(dpuField.getText());
Double dpu = new Double(dpuField.getText());
System.out.println(dpu);

是的,问题在于 getText() 报告了错误的 dpuField 值。此方法在 JTextField keyTyped 事件上调用。那么这里出了什么问题?

编辑2

看着: http://journals.ecs.soton.ac.uk/java/tutorial/post1.0/ui/keylistener.html显然,keyTyped() 没有给我键码。我必须切换到 keyRealeased()

最佳答案

What equivalent data-type should i be using in Java to work (i.e store, retrieve, and process) with the size of the values in my table? (I've settled with double - hence this post).

因为它是一个 DECIMAL 字段,所以您应该 prefer java.math.BigDecimal .您可以使用 PreparedStatement#setBigDecimal() 将其存储在数据库中您可以使用 ResultSet#getBigDecimal() 从数据库中检索它.

While trying to parse a double from a string, i'm getting errors

这不可能是真的。问题出在其他地方。也许它只是没有返回您期望返回的数据,或者您没有使用/调试您期望的值。

关于Java字符串到双重转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2950529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com