Java 由于HTTP GET请求,如何传输浮点数?

Java 由于HTTP GET请求,如何传输浮点数?,java,spring,string,get,floating-point,Java,Spring,String,Get,Floating Point,你能帮我解决这个问题吗?我在Java Spring Boot上有一个后端,我需要使用GETrequest进行传输,例如“2300,55”。据我所知,GET只能传输字符串和长数字,而这些都没有问题,但我需要用逗号或点来传输数字。如何做到这一点 我试图解析它,在try/catch块中获取字符串并进行解析: ... @PathVariable("weight") String weight try { float parsedWeight = Float.parseFl

你能帮我解决这个问题吗?我在Java Spring Boot上有一个后端,我需要使用
GET
request进行传输,例如“2300,55”。据我所知,
GET
只能传输字符串和长数字,而这些都没有问题,但我需要用逗号或点来传输数字。如何做到这一点

我试图解析它,在try/catch块中获取字符串并进行解析:

...
    @PathVariable("weight") String weight
    try {
        float parsedWeight = Float.parseFloat(weight);
    } catch (NumberFormatException e) {
...
抓住

java.lang.NumberFormatException:用于输入字符串:“2300,55”

但如果我用point代替逗号“2300.55”,它会被保存到数据库中,但会变成“2300”。数据库PostgreSQL和列类型为
REAL
->,即
float4
(一个单精度浮点数(4字节))

捕获的java.lang.NumberFormatException:用于输入字符串:“2300,55”

像使用小数点逗号而不是小数点这样的问题与。如果remote发送的数字像
2300,55
,这意味着它以本地化形式发送数字。通常,这在网络交互中被视为极为糟糕:所有数据都应以与现场无关的形式在程序之间发送。本地化形式只能用于与人的交互。因此,建议的方法是修复只发送中性表示的远程端

但是,如果您对远程端没有影响,并且必须处理损坏的表单,请尝试使用Java类方法分别设置预期的区域设置或
LocalDecimalSeparator
。对于十进制逗号,这可能是某个欧洲语言环境

(我无法回答DB问题。)

(我没有足够的声誉发表评论)在解析之前,您只需将字符串中的“.”替换为“.”。
对于您来说,第二个问题real足够大,可以容纳java float,所以问题可能在于持久化

您的实体是什么样子的?我认为您正在使用int/long