html - 当我需要存储不同精度的 float 时,如何定义 HTML 输入字段?

标签 html number-formatting

我需要一个可以存储如下数字的输入表单元素:

  • 4.6050927694997500
  • 0.0384623400229826
  • -0.0000317620199043
  • 等等

目前,为了能够输入这样的数字,HTML 规范要求您设置一个步长值,如下所示:

<input type="number" step="0.0000000000000001">

定义一个如此小的步长值并包含如此多的零对我来说感觉有点奇怪。

有更好的方法吗?我是否应该只使用 text 字段类型来表示 float 字而不是 number

最佳答案

是的,这是个好主意您必须使用text字段(它没有向上/向下按钮 - 您可以使用JS来创建它们)。最好使用 pattern 属性来通知用户输入无效。

<!-- TRY THIS SNIPPET -->

negative or positive
<input pattern="-?[0-9]+(\.[0-9]+)?" value="0">
<hr>

only positive
<input pattern="[0-9]+(\.[0-9]+)?" value="0">

<hr>

negative or positive supporting "scientific" format (eg. 5.3e-5)
<input pattern="-?[0-9]+(\.[0-9]+)?([eE]-?[0-9]+)?" value="0">

<hr>

positive supporting "scientific" format (eg. 5.3e-5)
<input pattern="[0-9]+(\.[0-9]+)?([eE]-?[0-9]+)?" value="0">

<hr>
Try entering some numbers (5, -5, 5.5, -5.5, -4.556e5, 4.556e5)

此外(如 type=number 字段的情况)在服务器上检查它(如果已发送)。

关于html - 当我需要存储不同精度的 float 时,如何定义 HTML 输入字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47778119/

相关文章:

sql - 写入具有两位小数的数字 SQL Server

php - 使用html php POST选中和未选中的复选框

html - 在 Angular 中为选择下拉菜单创建新对象

locale - android - 基于区域设置的数字格式

c# - 如何格式化具有更多数字的 double ?

c# - 为什么 N'ko 使用 3 位小数来显示定点 ("F") 数字,而实际上其他所有文化都使用 2 位?

html - DIV 水平滚动而不是垂直滚动 - 纯 CSS 方法

html - Foundation 6 中的列行类实际应用

javascript - 在选择树时隐藏 Div 中除一个元素外的所有元素

ios - numberformatter(样式货币)删除不起作用