如何转换数字格式

Posted

技术标签:

【中文标题】如何转换数字格式【英文标题】:How to convert NumberFormat 【发布时间】:2019-08-20 14:07:59 【问题描述】:

我想更新一个数据库,想把数字像这样:1.384,38

这是我从文本字段更新的代码,但它不起作用

try 
                String query="Update Sina Set Iuuiu = ?  where Formate = ? " ;


                PreparedStatement pst=connection.prepareStatement(query);
                pst.setDouble(1, Double.parseDouble(textField_3.getText()));  

                pst.setString(2, "Zuschnittentnahme Gegensauger"); 

                pst.executeUpdate();


                     catch (Exception e1) 
                        e1.printStackTrace();
                    

这是我的代码。现在我必须这样输入:1344.43 但我想这样输入:1.344,43

【问题讨论】:

我们需要更多的上下文,例如:为什么要将数字存储为字符串?您的更新代码/查询是什么样的?究竟什么“不起作用”? - 一般来说,请阅读How to Ask,然后相应地更新您的问题。 format(pst.setDouble(...)) 你到底想在这里做什么?您是否意识到 PreparedStatement.setDouble() 不返回任何内容,即 void 也许this answer 可以帮助您解决数字格式问题。 【参考方案1】:

要在默认语言环境中解析数字,请使用

String text = textField_3.getText();
double number = NumberFormat.getInstance().parse(text).doubleValue();
pst.setDouble(1, number);

或使用给定的语言环境:

String text = textField_3.getText();
double number = NumberFormat.getInstance(Locale.GERMANY).parse(text).doubleValue();
pst.setDouble(1, number);

不要忘记 parseDouble 最终抛出的 ParseException 的 try-catch

【讨论】:

如何将其放入我的代码中?我想用一个字符串设置一个文本字段,但该文本字段只接受这种格式的双精度:133.43 这不是一个不同的问题吗?更新了问题以在您的代码中包含可能的用法 只需将您的 pst.setDouble(1,... 行替换为我发布的 3 行

以上是关于如何转换数字格式的主要内容,如果未能解决你的问题,请参考以下文章

excel时间格式如何换成小时数字格式计算

如何将 C++ 数字格式转换为 C# 数字格式?

数值怎么转换成数字

如何转换数字格式

如何将十进制格式转换为数字格式

关于时间格式的转换,MYSQL,PHP,10位数字表示时间