Navicat无法设置数字格式

想在网页页面的金额设置为有千分位和小数点,但是在Navicat里面“设置显示格式”后,输入的显示格式试过下面四种方式,但是刷新后并没有什么反应,数字并没有变化

img

问题解决
感谢之前有位答主的答复,虽然评论被删了
由于本人代码不是很会,而且时间较紧,对于其他答主的加入代码的方式不是很熟,因此采用这位答主的方法,比较简单
1.在Navicat的查询编辑器中通过

```
SELECT FORMAT(amount1,2) as amount3 FROM YOU_TABLE

```sql
将数字转化为加千分位和小数点的格式
2.将查询出的结果导出
3.在原表中新建一栏,将导出的结果再导入这一栏,得到格式化后的数据,并且在网页中也能正确显示

这个设置navicat是没有用的,可以通过js把金额格式化成千分位

/*
千分位格式化
*/
function toThousands(num) {
  let logo = "";
  let negative = num.charAt(0)
  if (negative=="-") {
      logo = "-";
      num=num.substring(1)
  }
  num = (num || 0).toString();
  let number = 0,
      floatNum = '',
      intNum = '';
  if (num.indexOf('.') > 0) {
      number = num.indexOf('.');
      floatNum = num.substr(number);
      intNum = num.substring(0, number);
  } else {
      intNum = num;
  }
  let result = [],
      counter = 0;
  intNum = intNum.split('');
  for (let i = intNum.length - 1; i >= 0; i--) {
      counter++;
      result.unshift(intNum[i]);
      if (!(counter % 3) && i != 0) { result.unshift(','); }
  }
  return logo + result.join('') + floatNum || '';
}



金额可以用这种格式,你需要几位小数点就写几位

img

img

是前端格式化 后端格式化 或者sql查出来格式化结果 不能直接在数据库设置

根据问题描述,Navicat无法设置数字格式,可能是因为设置的方式不正确或者设置的对象不正确。以下是可能的解决方案:
1. 确认设置的对象:在Navicat中,需要确认设置的对象是正确的,即要设置的表和字段。可以通过双击表名打开表,然后右键点击要设置的字段,选择“修改字段”进行设置。
2. 确认设置的方式:在Navicat中,设置数字格式的方式是通过“设置显示格式”来实现的。在设置显示格式时,需要选择正确的格式类型,例如“数字”、“货币”、“百分比”等,并设置相应的格式选项,例如小数位数、千分位分隔符等。
3. 确认设置的生效方式:在Navicat中,设置显示格式后,需要刷新表格才能使设置生效。可以通过右键点击表格,选择“刷新”或者按下F5键来刷新表格。
如果以上方法都无法解决问题,可以尝试重新安装Navicat或者联系Navicat官方客服寻求帮助。

这个你再后端代码拿出来的时候格式化一下就好了,

/**
     * @Title: fmtMicrometer
     * @Description: 格式化数字为千分位
     * @param text
     * @return    设定文件
     * @return String    返回类型
     */
    public static String fmtMicrometer(String text) {
        DecimalFormat df = null;
        if (text.indexOf(".") > 0) {
            if (text.length() - text.indexOf(".") - 1 == 0) {
                df = new DecimalFormat("###,##0.");
            } else if (text.length() - text.indexOf(".") - 1 == 1) {
                df = new DecimalFormat("###,##0.0");
            } else {
                df = new DecimalFormat("###,##0.00");
            }
        } else {
            df = new DecimalFormat("###,##0");
        }
        double number = 0.0;
        try {
            number = Double.parseDouble(text);
        } catch (Exception e) {
            number = 0.0;
        }
        return df.format(number);
    }
    
}


Navicat的"设置显示格式"只是针对Navicat软件内部的显示格式,不会影响到数据库中实际存储的数据格式。如果你想在网页页面上显示千分位和小数点,需要在网页的前端代码中进行处理。以下是一个简单的示例代码,可以在网页中将数字格式化为带有千分位和小数点的格式:

<!DOCTYPE html>
<html>
<head>
    <title>Number Formatting Example</title>
    <script type="text/javascript">
        function formatNumber(num) {
            return num.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,');
        }
    </script>
</head>
<body>
    <p>原始金额:1000000</p>
    <p>格式化后: <span id="formattedAmount"></span></p>

    <script>
        var amount = 1000000;
        var formattedAmount = formatNumber(amount.toFixed(2));
        document.getElementById("formattedAmount").innerHTML = formattedAmount;
    </script>
</body>
</html>

在这个示例代码中,formatNumber函数将数字格式化为带有千分位和小数点的格式。在JavaScript代码中,我们将数字转换为字符串,然后使用正则表达式将数字格式化为带有千分位的格式,并使用toFixed函数将其保留小数点后两位。最后,我们将格式化后的数字插入到HTML页面中的一个元素中,以便在网页中显示。

你可以根据需要修改这个代码,以适应你的具体需求。