如何解决ReactJavaScript货币转换未返回正确价格
该项目本身正在使用React。货币转换器显然是第三方JavaScript转换器,并且不在React中。
API端点不包括加拿大价格,仅包括美国价格。 React代码中有逻辑将货币转换为加拿大,但加拿大的价格不正确-低于应有的价格(高于美国的价格,从来没有这样)。另外,加拿大价格位于美国国旗旁边,而不是加拿大国旗旁边的金额。
免责声明-这不是我的代码。我已经从不再在这里的开发人员那里接手了。没有文档。
Live link to a page with incorrect Canadian pricing.您会看到加拿大价格在哪里,在美国国旗图标旁边-但比美国的$ 34,000价格要低得多。当然,加拿大的价格应该更高。
我已将完整代码上传到Github,可以在here上找到。
从“ HelperFunctions.ts”文件中:
export function formatPrice(price,lang,inclCurTxt?: boolean,currency?: string) {
let formattedPrice = price;
const usaRate = .74;
if (lang === "fr") {
//FRENCH
const currencyText = (inclCurTxt ? " CA" : "");
if (currency != null && currency === "US") {
//USD
formattedPrice = accounting.formatMoney((Number(price) * usaRate),""," ") + " $" + currencyText;
} else {
//CAD
formattedPrice = accounting.formatMoney(price," ") + " $" + currencyText;
}
} else {//ENGLISH
const currencyText = (inclCurTxt ? " CAD" : "");
if (currency != null && currency === "US") {
//USD
formattedPrice = accounting.formatMoney((Number(price) * usaRate),"$",0) + currencyText;
} else {
//CAD
formattedPrice = accounting.formatMoney(price,0) + currencyText;
}
}
return formattedPrice;
}
从“ MachineImagesAndInfo.tsx”文件中:
//PRICE
if (
props.jsonDataProduct.price != null &&
props.jsonDataProduct.price.text != null
) {
detailsHtml.itemPriceCA = formatPrice(
props.jsonDataProduct.price.text,props.lang
);
detailsHtml.itemPriceUS = formatPrice(
props.jsonDataProduct.price.text,props.lang,false,"US"
);
}
如何正确转换加拿大价格并显示正确的价格?
解决方法
似乎原始功能假定输入价格以CAD给出,而CADUSD的汇率被硬编码为0.74。该函数将价格(假设为CAD)乘以0.74。按照当前的逻辑,您应该将速率更新为1.35或将乘法转换为除法。
总体而言,我建议进行重构。对于一个非常简单的任务,该功能非常繁琐。
,您可以使用以下函数来格式化货币:
export const moneyMask = (value: string) => {
value = value.replace('.','').replace(',','').replace(/\D/g,'')
const options = { minimumFractionDigits: 2 }
const result = new Intl.NumberFormat('pt-BR',options).format(
parseFloat(value) / 100
)
console.log(result)
return 'R$ ' + result
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。