Javascript数组计算与转换

Javascript数组计算与转换,javascript,arrays,Javascript,Arrays,我目前很难编写收据计算器。我想映射一个具有特定值的数组,然后对数字进行四舍五入,并将它们转换为带有逗号而不是点的字符串 让成分=[0.02,0.05,0.5,1.2]; 让map=components.mapx=>x*6; 让我们输入地图 { 条目.toFixed2.替换。,; 控制台.logentry; } 条目.toFixed2.替换。,;不更改条目。你需要把它分配给某些东西 let formatted = entry.toFixed(2).replace(".", ",") consol

我目前很难编写收据计算器。我想映射一个具有特定值的数组,然后对数字进行四舍五入,并将它们转换为带有逗号而不是点的字符串

让成分=[0.02,0.05,0.5,1.2]; 让map=components.mapx=>x*6; 让我们输入地图 { 条目.toFixed2.替换。,; 控制台.logentry; } 条目.toFixed2.替换。,;不更改条目。你需要把它分配给某些东西

let formatted = entry.toFixed(2).replace(".", ",")
console.log( formatted )
条目.toFixed2.替换。,;不更改条目。你需要把它分配给某些东西

let formatted = entry.toFixed(2).replace(".", ",")
console.log( formatted )
entry.toFixed2.replace.不会更改条目,但会返回一个新值。您需要为条目分配一个新值

设数量=4; 设ingridients=[0.02,0.05,0.5,1.2]; 设map=ingridients.mapx=>x*数量; 让我们输入地图{ entry=entry.toFixed2.replace。,; 控制台.logentry; } entry.toFixed2.replace.不会更改条目,但会返回一个新值。您需要为条目分配一个新值

设数量=4; 设ingridients=[0.02,0.05,0.5,1.2]; 设map=ingridients.mapx=>x*数量; 让我们输入地图{ entry=entry.toFixed2.replace。,; 控制台.logentry; } 设ingridients=[0.02,0.05,0.5,1.2]; 设数量=6; 设map=ingridients .mapx=>x*数量 .mapn=>n.toFixed2.replace。,; 让我们输入地图{ 控制台.logentry; } 设ingridients=[0.02,0.05,0.5,1.2]; 设数量=6; 设map=ingridients .mapx=>x*数量 .mapn=>n.toFixed2.replace。,; 让我们输入地图{ 控制台.logentry; } toFixed和replace与处理原语的任何其他方法一样纯粹,这意味着它们不会更改引用值本身,而是返回一个新值。如果你愿意

console.log(entry.toFixed(2).replace(".", ","));
您需要记录所需的返回值。

与使用原语的任何其他方法一样,toFixed和replace都是纯的,这意味着它们不会更改引用值本身,而是返回一个新值。如果你愿意

console.log(entry.toFixed(2).replace(".", ","));

您需要记录所需的返回值。

使用修正系数可以解决您在对浮点数执行算术运算时遇到的精度问题。一个修正系数就是你需要乘以浮点数的那个数,这样它就可以被转换成一个整数。从这个意义上讲,所有算术运算现在都将在整数和数字之间执行。您可以查看下一段代码,了解如何在此特定情况下使用修正系数:

设数量=6; 让成分=[0.02,0.05,0.5,1.2]; //定义内算术运算的校正因子 //配料上可用的浮点数集。 设cf=Math.pow10,2; 让map=components.mapx=> { 设res=x*cf*数量*cf/cf*cf; 返回res.toString.replace。,; }; 让mapRounded=Components.mapx=> { 设res=x*cf*数量*cf/cf*cf; 返回Math.ceilres; }; console.logOriginal:,map,向上取整:,mapRounded; .as控制台{背景颜色:黑色!重要;颜色:石灰;}
。作为控制台包装器{max height:100%!important;top:0;}可以使用校正因子来解决您在使用浮点数执行算术运算时面临的精度问题。一个修正系数就是你需要乘以浮点数的那个数,这样它就可以被转换成一个整数。从这个意义上讲,所有算术运算现在都将在整数和数字之间执行。您可以查看下一段代码,了解如何在此特定情况下使用修正系数:

设数量=6; 让成分=[0.02,0.05,0.5,1.2]; //定义内算术运算的校正因子 //配料上可用的浮点数集。 设cf=Math.pow10,2; 让map=components.mapx=> { 设res=x*cf*数量*cf/cf*cf; 返回res.toString.replace。,; }; 让mapRounded=Components.mapx=> { 设res=x*cf*数量*cf/cf*cf; 返回Math.ceilres; }; console.logOriginal:,map,向上取整:,mapRounded; .as控制台{背景颜色:黑色!重要;颜色:石灰;}
.作为控制台包装{max height:100%!important;top:0;}在旁注上,它是书写的成分,而不是注释。在旁注上,它是书写的成分,而不是注释。这是更优雅的方式吗?还是来自@Maheer Ali的答案?谢谢,这是更优雅的方式吗?还是来自@Maheer Ali的答案?谢谢,谢谢。这是对我的问题肯定有用的答案。我现在试图实现,如果map[2]有一个逗号,例如3,5,它应该总是向上取整到下一个整数。。。比如4。你能帮我吗?@aura199x你可以用Math.ceil创建另一张四舍五入元素的地图。我已经更新了我的答案,请检查这是否对您有帮助。谢谢。这是对我的问题肯定有用的答案。我现在试图实现,如果map[2]有一个逗号,例如3,5,它应该总是向上取整到下一个整数。。。比如4。你能帮我吗?@aura19 9x您可以使用Math.ceil创建另一个向上取整元素的映射。我已经更新了我的答案,请检查这是否对您有帮助。