带逗号和两位小数的数值格式

     2023-04-14     135

关键词:

【中文标题】带逗号和两位小数的数值格式【英文标题】:Number value format with comma and two decimal points 【发布时间】:2018-09-02 23:30:29 【问题描述】:

我正在使用 chart.js 来显示我的销售额,问题是我无法将数据正确转换为带有逗号和两位小数的数字格式。

当数据为整数时,输出正确。但是,当我显示平均销售额时,我得到的输出类似于

平均销售额(无格式)1000.2017 平均销售额(含格式)1,000.2,017 总销售额(无格式)1000 总销售额(含格式)1,000

如何在javascript中正确格式化输出?

tooltips: 
  callbacks: 
     label: function(tooltipItem, data) 
         var value = data.datasets[0].data[tooltipItem.index];
         value = value.toString();
         value = value.replace(/\B(?=(\d3)+(?!\d))/g, ",");
              return value;
           
       
  ,
   scales: 
     yAxes: [
       ticks: 
         userCallback: function(value, index, values) 
           value = value.toString();
           value = value.replace(/\B(?=(\d3)+(?!\d))/g, ",");
              return value;
         
        
    ]

【问题讨论】:

“1000.2017”是一个数字还是两个数字? “平均销售额(含格式)1,000.2,017”真的是您想要的吗?这不是有效的数字格式。 不,那是我要修复格式的代码输出 【参考方案1】:

Javascript 为您提供了一些解决方案来做到这一点。下面首先想到两个。

1. number.toLocaleString

如前所述,.toLocaleString 可以帮助您,但不要使用minimumFractionDigits,而是使用maximumFractionDigits

如下:

number.toLocaleString(undefined,  maximumFractionDigits: 2 )

总结一下:

const decimalsFormated = number.toLocaleString(undefined,  maximumFractionDigits: 2 )

然后

const finalFormated = String(decimalsFormated).replace(/\B(?=(\d3)+(?!\d))/g, ",");

2。 Number.parseFloat + toFixed

let number = 123.1234
Number.parseFloat(number).toFixed(2);

在每种方法中,最好将您的解决方案包装在函数中:

function getCommaSeparatedTwoDecimalsNumber(number) 
    const fixedNumber = Number.parseFloat(number).toFixed(2);
    return String(fixedNumber).replace(/\B(?=(\d3)+(?!\d))/g, ",");


您也可以使用正则表达式。不过我想说这太复杂了。

另外非常重要的一点需要注意的是,您可能希望也可能不希望对最终结果进行四舍五入。

toLocaleString 与 maxDigits 一起使用只会删除这两个数字之后的所有内容。 使用 toFixed 会使您的输出不正确地四舍五入。

此解决方案将正确舍入:

Number(Math.round(1.005+'e2')+'e-2').toFixed(2);

从这里粘贴: Format number to always show 2 decimal places

最后一件事,可能是最重要的。 根据输入数字的格式,上述解决方案可能有效,也可能无效。您需要决定输入格式,如果无法预见,请为每种可能性提供格式器:

1000000.123124

10000123123

100000,1239

1.12039

1,19012

等等

根据格式,您需要执行的操作顺序可能会有所不同。

【讨论】:

Number.parseFloat(number).toFixed(2).replace(/[.]/, ","));正在工作,但没有逗号 我需要一个逗号和小数点,例如 1,000.00 只是为了清楚 Number.parseFloat(number).toFixed(2).replace(/[.]/, ",")) 的输出;是 1000.00 我需要的是 1,000.00 其实不是,因为.replace(/[.]/, ","));会用逗号代替点。一开始我误会你了。我的答案现在可以了吗?【参考方案2】:

您可以尝试像这样使用 toLocaleString:

value = value.toLocaleString(undefined,  maximumFractionDigits: 2 );

它将根据您的区域设置格式化数字,用千位分隔符和逗号后的 2 位数字。

【讨论】:

您使用的是什么浏览器,并非所有浏览器都支持带参数的 toLocaleString(Edge 支持)。 我正在使用 chrome 它不会起作用,因为在这个答案中 minimum 应该替换为 maximum 请点赞我的评论和/或回答,因为它有帮助:)【参考方案3】:

你在找什么:

逗号 小数点后两位。

这是你的功能:

function get4DecimalPointsWithCommas(amount) 
    return amount.toLocaleString(undefined,  maximumFractionDigits: 4, minimumFractionDicits: 4 );

【讨论】:

如何让excel饼图的百分比带两位小数

...数值和小数位数。 参考技术B将图表中引用的数据设置为两位小数就行(“格式”-“单元格”-“数字”-“百分比”(“小数位数”选2)。自己摸索一下,简单。 参考技术C点击”百分比”方框-右键“数据标志格式”-“数... 查看详情

使用Javascript格式化逗号和小数位的数字[重复]

】使用Javascript格式化逗号和小数位的数字[重复]【英文标题】:FormattingnumbersforcommasanddecimalplaceswithJavascript[duplicate]【发布时间】:2015-07-1810:45:25【问题描述】:我正在尝试使用javascript创建一个函数,该函数显示所有带两位小数... 查看详情

db2中如果转换数值显示为两位小数,并显示千分位逗号要怎么写sql?

DB2中如果转换数值显示为两位小数,并显示千分位逗号要怎么写SQL?SQLServer可以写:selectconvert(nchar(18),case(xxxasmoney),1)fromtable1->显示为1,750,000.00DB2中要怎么写呢?参考技术A可以先转为字符串,然后用VARCHAR_FORMAT_BIT函数,如下:V... 查看详情

格式化带两位小数的数字var [重复]

】格式化带两位小数的数字var[重复]【英文标题】:Formattingnumbervarwithtwodecimalplaces[duplicate]【发布时间】:2014-04-2216:02:31【问题描述】:我有以下带有两个变量的javascript代码:eventTotal=eventTotal+parseFloat(currentElement.title).toFixed(2);deli... 查看详情

PHP 需要强加两位小数和一个逗号

】PHP需要强加两位小数和一个逗号【英文标题】:PHPNeedtoimposetwodecimalsandacomma【发布时间】:2016-06-1417:58:37【问题描述】:我有一些看起来像这样的php脚本<?phpecho"$".round((floatval(preg_replace("/[^-0-9\\.]/","",$row[\'display_price\']))*1.03),2)... 查看详情

带逗号的 Oracle 格式数字删除尾随零小数

】带逗号的Oracle格式数字删除尾随零小数【英文标题】:OracleFormatNumberWithCommasRemoveTrailingZeroDecimals【发布时间】:2020-04-2416:27:56【问题描述】:在我的查询中,我试图用逗号输出数字,但我想删除小数点后的所有尾随零。例如:... 查看详情

在Java中将双精度格式设置为两位小数会产生逗号而不是点[重复]

】在Java中将双精度格式设置为两位小数会产生逗号而不是点[重复]【英文标题】:FormattingdoublestotwodecimalplacesinJavaproducesacommainsteadofadot[duplicate]【发布时间】:2014-06-0919:39:40【问题描述】:我已经阅读了很多线程,这似乎是在我... 查看详情

bigdecimal的用法详解(保留两位小数,四舍五入,数字格式化,科学计数法转数字,数字里的逗号处理)(代码片段)

一、简介   Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来... 查看详情

pandas-数字前面补0

...x(填充右边,宽度为4):x<4d数字补x(填充右边,宽度为4):,以逗号分隔的数字格式:.2%百分比格式:.2e指数记法:>10d右对齐(默认,宽度为10):<10d左对齐(宽度为10):^10d中间对齐(宽度为10) 查看详情

将数据格式化为:四舍五入带两位小数点(12.33)

一、前台1、numberObject.toFixed(2);将number型数据四舍五入保留2位,输出的是string类型数据2、gridView中绑定的数据格式化,用dataFormatstring(0:F);3、页面拼的table,数据用formatNumber(num,2,‘,‘)//获得新的金额格式functionformatNumber(num,precision... 查看详情

带小数和逗号的 PHP 回合 $1,000

】带小数和逗号的PHP回合$1,000【英文标题】:PHPRoundWithDecimal&Comma$1,000【发布时间】:2015-06-0505:23:08【问题描述】:<?=round(number_format($vehicle->prices[\'total_rental\'],2,\'.\',\',\')*0.50,2)?>我希望输出四舍五入到小数点后2位(货... 查看详情

java编程:输出值要求格式化为:以逗号作为每千位的间隔符,并且小数点后四舍五入为两位。例如:123.45

有快速应用于所有类的方法吗?importjava.text.DecimalFormat;publicclassTestpublicstaticvoidmain(String[]args)doublepi=3.1415927;//圆周率//取一位整数System.out.println(newDecimalFormat("0").format(pi));//3//取一位整数和两位小数System.out.println(newDecimalForma... 查看详情

excel如何实现小数点后保留两位有效数字?

...成1.024;1.00231变成1.0023;1.00236变成1.0024.那些理解为保留两位小数的就不用回答了。谢谢!...比例,1.231变为1.23;1.236变成1.24;1.0231变成1.023;1.0236变成1.024;1.00231变成1.0023;1.00236变成1.0024.那些理解为保留两位小数的就不用回答... 查看详情

小数的 SQL 格式,用逗号表示小数,仅用于数字

】小数的SQL格式,用逗号表示小数,仅用于数字【英文标题】:SQLformatfordecimalwithcommatoindicatedecimals,onlytodigit【发布时间】:2018-05-1407:34:19【问题描述】:如何将十进制值转换为逗号?数字不带逗号来分隔1000,并且有逗号来表示... 查看详情

如何设置带两位小数的千位分隔符?

】如何设置带两位小数的千位分隔符?【英文标题】:Howtosetthousandsseperatorswithtwodecimalplaces?【发布时间】:2013-04-2608:50:28【问题描述】:在我的应用程序中,我限制用户输入7.2位数字(如1234567.12)。输入时应显示为1,234,567.12。... 查看详情

尝试显示带两位小数的数字时 number_format 和 sprintf 的意外结果

】尝试显示带两位小数的数字时number_format和sprintf的意外结果【英文标题】:Unexpectedresultfornumber_formatandsprintfwhentryingtodisplaynumberwithtwodecimals【发布时间】:2016-06-2809:00:27【问题描述】:我有一个计算返回这个double:6.4971508379888。... 查看详情

js对数字进行货币格式化并且保留两位小数点,小数用0补全

/***将数值四舍五入(保留2位小数)后格式化成金额形式**@paramnum数值(Number或者String)*@return金额格式的字符串,如‘1,234,567.45‘*@typeString*/functionformatCurrency(num){num=num.toString().replace(/$|,/g,‘‘);if(isNaN(num)) num="0";sign= 查看详情

SwiftUI中如何将带逗号的十进制数转换为小数(Point)?

】SwiftUI中如何将带逗号的十进制数转换为小数(Point)?【英文标题】:Howcanadecimalnumberwithacommabeconvertedinadecimal(Point)inSwiftUI?【发布时间】:2020-03-1019:53:14【问题描述】:如何格式化插入逗号的文本字段,以便插入的十进制值示... 查看详情