如何将“24cd2ec2-6674-4aa2-a761-1b0a953124ba”(字符串对象)转换为 BigDecimal [关闭]

Posted

技术标签:

【中文标题】如何将“24cd2ec2-6674-4aa2-a761-1b0a953124ba”(字符串对象)转换为 BigDecimal [关闭]【英文标题】:How to convert "24cd2ec2-6674-4aa2-a761-1b0a953124ba"(String Object) into a BigDecimal [closed] 【发布时间】:2019-06-19 18:40:40 【问题描述】:

我有一个数据库表MyTable,其中有一列myColumn,类型为VARCHAR(20)。我有一个 Spring MVC 应用程序,它在控制器级别接收 POST 请求。我正在尝试捕获请求的事务 ID 并将其设置为实体对象中类型为 BigDecimal 的字段。我收到了java.lang.NumberFormatException

例如:

String transactionID = "24cd2ec2-6674-4aa2-a761-1b0a953124ba";
entity.setTransactionID(new BigDecimal(transactionID));
entity.save();

任何解决此问题的方法都会有所帮助。

【问题讨论】:

十进制数字中没有连字符。即使您将其视为十六进制,它也不会是有效数字。 您希望这会产生多少数字,为什么? 如果您的实体具有 BigDecimal 类型,那么您首先如何将 guid 导入数据库?为什么你不为两者使用相同的类型? 由于此异常,我无法将实体持久保存到数据库中。我完全不确定为什么 DB 字段是 VARCHAR 类型,而声明的 Entity 类中的字段是 BIGDECIMAL 类型。 @azurefrog 让我们再试一次:您希望“24cd2ec2-6674-4aa2-a761-1b0a953124ba”是什么数字?我假设它不是 42? 【参考方案1】:

为了将 String 转换为 BigDecimal,String 应包含可转换为小数的数值。

例如:-

String ID= "123.45";
System.out.println(new BigDecimal(ID)); // 123.45

如果相反,

String ID= "12-fe3.45";
System.out.println(new BigDecimal(ID)); // throw java.lang.NumberFormatException

【讨论】:

如果要保存 guid,请在实体类中使用 String 而不是 Bigdecimal。 谢谢。此信息有帮助。 @DASH @user8782239 如果有帮助,请考虑将其标记为已接受的答案

以上是关于如何将“24cd2ec2-6674-4aa2-a761-1b0a953124ba”(字符串对象)转换为 BigDecimal [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何将Ios文件上传到

Qt如何将文字变成图片?

如何将Bitmap保存为本地图片文件?

在MATLAB中如何将图导出

ASP如何将SQLSERVER数据导出到DBF(VF)

如何将CSV格式转换成JSON格式