reactjs - 我如何使我的计算应用程序的总数仅为美元和美分 0.00 美元的正确位数
问题描述
我有这个计算公式,它在用户输入所有必需字段后计算总数,但是总数最终是 15+ 位而不是 4 位,我只希望它们是美元和美分 0.00 的数字
this.state = {
soldPrice: 0.0,
shippingCost: 0.0,
shippingCharge: 0.0,
itemCost: 0.0,
Profit: ' ',
paypalFee: 0.30,
paypalFeePercentage: 0.029,
ebayFee: 0.1,
profitMargin: '',
paypalFeeTotal: '',
ebayFeeTotal: '',
profitColor: '',
};
}
calculateProfit = () => {
const finalValue = parseFloat(this.state.soldPrice || 0) +
parseFloat(this.state.shippingCharge || 0) - parseFloat(this.state.soldPrice || 0) *
parseFloat(this.state.paypalFeePercentage || 0) - parseFloat(this.state.paypalFee || 0)
- parseFloat(this.state.soldPrice || 0) *
parseFloat(this.state.ebayFee || 0) - parseFloat(this.state.shippingCost || 0)
- parseFloat(this.state.itemCost || 0);
this.setState({ finalValue });
}
<NumberInput
onchange={(shippingCharge) => this.setState({ shippingCharge })}
/>
</View>
<Text style={styles.profitResult}>
TOTAL PROFIT:{this.state.finalValue}</Text>
</View>
我尝试使用 toPrecision 但我不知道如何将它应用到状态而不出现错误
解决方案
您可以使用Number.toFixed()
小数精度(在您的情况下为 2)
https://www.jacklmoore.com/notes/rounding-in-javascript/
此外,由于在您的状态下,一切都已经是浮动的,我不相信您必须对parseFloat
一切都使用|| 0
for 一切。
推荐阅读
- flutter - 如何停止横幅在颤动中添加覆盖导航抽屉
- ios - 在 iOS 13 XCUITest 上通过滑动关闭视图
- android - 动画 ViewPager 的特定页面
- c# - 如何在导航栏xamarin表单中隐藏后退按钮
- c# - 如何使用画布元素进行光线投射(屏幕空间叠加)
- ios - FetchedResults 崩溃:调度队列:com.apple.main-thread (0)
- gitlab - 设计 GitLab 工作流程
- javascript - NPM 启动错误 - 文件路径找不到 JSON 包文件
- javascript - 如何在一个文本框中显示开始日期和日期,除了那个月份和日期应该像下拉菜单
- php - 如何使用 session_start 更新 MySQL 中的字段并由 id 确定