浮点数的字符串表示形式最大可能的长度是多少?

fir*_*ice 5 java floating-point maxlength

标题几乎说明了一切...

我正在尝试强制在表单上输入文本的最大长度。字段之一可以是任何有效的浮点数。最大长度是多少?

例如,对于整数

// negative sign makes MIN_VALUE larger than MAX_VALUE
String.valueOf(Integer.MIN_VALUE).length();
Run Code Online (Sandbox Code Playgroud)

更新

我已经测试了以下内容:

String.valueOf(-Float.MIN_VALUE).length();
String.valueOf(-Float.MAX_VALUE).length();
String.valueOf( Float.MIN_VALUE).length();
String.valueOf( Float.MAX_VALUE).length();
Run Code Online (Sandbox Code Playgroud)

这给了我以下输出:

8
13
7
12
Run Code Online (Sandbox Code Playgroud)

我不认为最大长度是13

Jen*_*der 4

浮点值的最大长度没有意义。

如果您希望用户输入由 java 表示的任何浮点值,您希望允许类似的事情

1000000000000000000000000000000000000000000000000000000000000000
Run Code Online (Sandbox Code Playgroud)

甚至

000000000000000000000000000000000000000000000000000000000.00000000000000000000001
Run Code Online (Sandbox Code Playgroud)

输入字段的限制应基于业务需求,而不是基于“我对所有其他字段都有限制”之类的规则。

到目前为止,这里的“业务”规则似乎是“可以解析并存储到浮点数中”

另请注意,限制输入长度通常会阻止输入(通过剪切和粘贴)较长的内容,并且仅在经过一些编辑后才成为有效输入。所以它实际上降低了可用性。