首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript:如何将英文格式的浮点数转换为西班牙语格式的浮点数?

问Javascript:如何将英文格式的浮点数转换为西班牙语格式的浮点数?
EN

Stack Overflow用户
提问于 2020-03-14 17:22:00
回答 2查看 318关注 0票数 2

要用react构建我的网站的表,我使用的是"react-bootstrap-table-next“。有了这个库,如果数字是整数或浮动的英语格式,我就可以构建表并进行排序,而不存在任何问题。

但是,如果我试图按带有西班牙格式浮点数的列对表进行排序,排序是不正确的。这是因为javascript中的浮点数格式是英文格式的,因此要在屏幕上显示这些值,我必须将浮点数转换成字符串,然后进行更改。按",“。

在西班牙语中,我们用昏迷分隔小数部分,而不是用圆点。例如,12.95 (英文格式) === 12,95 (西班牙文格式)

因此,如果我尝试按DRE列从高到低对表进行排序,正如您在下一个图像中看到的那样,排序是不正确的。因为数据实际上是字符串,而不是浮点数,这是因为我必须用它们进行更改。

因此,是否有办法将英文格式的浮点数转换为西班牙语格式的浮点数?或者根据另一列的值来排序列吗?例如,我可以将相同的列添加到表中,但可以添加两次。一次是英语格式,另一次是西班牙语格式。带有英文格式的列将不可见,但带有西班牙格式的列将是可见的。该列将根据该列的英文格式进行排序。

有什么办法吗?或者其他的选择?

​

​

编辑I

多亏了@Uby,我可以对表进行排序,但并不总是做得很好。

我的分类功能是:

代码语言:javascript
复制
sortFunc: (a, b, order) => {
    if (order === 'asc') {
        return parseFloat(a) - parseFloat(b);
    }
    return parseFloat(b) - parseFloat(a); // desc
},

但是,将表从高到低或从低到高排序并不总是正确的:S

​

​

我做错了什么吗?我不明白会发生什么。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-14 17:37:27

您可以定义一个自定义排序函数,在其中自己解析浮点数并将其添加到列定义中,如下所示:

代码语言:javascript
复制
{
  // omitted...
  sort: true,
  sortFunc: (a, b, order, dataField, rowA, rowB) => {
      let fA = parseFloat(a.replace(',','.'));
      let fB = parseFloat(b.replace(',','.'));

      if (order === 'asc') {
          return fB - fA;
      }
      return fA - fB; // desc
}
票数 1
EN

Stack Overflow用户

发布于 2020-03-14 17:27:52

由于您使用的是react-bootstrap-table-next,所以可以尝试编写自定义排序函数。这是文件。

您必须将单元格内容解析为float (用点替换逗号),然后进行浮点比较。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60685388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档